2012-06-15 3 views
1

HTML + JS로 작성된 완성 된 웹 앱이 있습니다. Chrome의 웹 앱 모드 (SOP가 사용 중지되어 있고 file : // URI의 JSON 요청을 허용하는 한)에서 제대로 작동하지만 Chrome에만 제한 사항을 적용하고 싶지는 않습니다. 특히 Windows 배포가 가능하므로 고통).XULRunner를 사용하여 완성 된 HTML 웹 앱을 배포 하시겠습니까?

어떻게이 응용 프로그램을 XULRunner와 함께 배포합니까? 전체 UI가 이미 구현되어 있으므로 XUL 코드는 가능한 한 최소화해야합니다 (기본적으로 "사이트는 여기에 렌더링하고 AJAX 요청을 $ domain에 허용합니다"). 이 작업을 수행하는 방법에 대한 자습서가 있습니까? 내가 발견 한 것들은 모두 순수한 XUL 응용 프로그램에 초점을 맞추 었습니다 ...

답변

3

Webapp XUL Wrapper을 확인해 보시기 바랍니다. README에서 :

Webapp XUL Wrapper는 웹 응용 프로그램을 Mac, Windows 및 Linux 용 번들로 묶을 수있는 빌드 스크립트 모음입니다.

최종 결과는 웹 응용 프로그램의 독립형 및 오프라인 버전입니다.

대화
  • 대한 최소한의 XUL의 메인 브라우저 창 응용 프로그램과는
  • XULRunner가 17 HTTP server (게코 17) 번들
  • +0

    링크를 제공해 주셔서 감사합니다. 불행히도, [성능 문제] (http://admin.tao.at/2012/09/04/rsa-encryption-in-javascript-and-c/)로 인해 오래 전에 원래대로 갔지만 우리가 이것을 필요로 할 때 다음 번에 보도록 해. – Creshal

    3

    XULRunner는 XUL 기반 응용 프로그램을 실행하기위한 것이므로 해당 문서에 초점을 맞춘 설명서는 잘못되었습니다. 그러나 웹 응용 프로그램을 표시하기 위해 해당 응용 프로그램 만 필요한 경우 XUL 응용 프로그램은 매우 간단 할 수 있습니다. 기본적으로, 유일한 XUL 파일은 다음과 같습니다 크기와 위치와 완전히 채울 브라우저 요소를 기억 창을의

    <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 
    
    <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 
        title="My Web App" 
        id="webapp-window" 
        width="800" 
        height="600" 
        persist="screenX screenY width height sizemode"> 
        <browser type="content-primary" 
         src="index.html" 
         flex="1" 
         disablehistory="true"/> 
    </window> 
    

    합니다. 참고 : <xul:window>, <xul:browser>.

    그리고 chrome.manifest 파일은 다음과 같을 것이다는 :

    content webapp content/ 
    

    chrome://webapp/content/에 해당로 content/ 하위 디렉토리를 선언 - 당신이 당신의 주요 XUL 파일과 실제 웹 응용 프로그램을 둘 것입니다 곳이 있습니다. chrome:// 프로토콜이 사용 중이기 때문에 웹 응용 프로그램은 모든 권한으로 실행됩니다. 특히 모든 도메인에서 XMLHttpRequest을 사용할 수 있습니다. (전체 권한을 가진 웹 응용 프로그램을 실행하는 것은 보안에별로 좋지 않지만 사용하지 않는 것이 가장 간단합니다. 같은 출처 정책).

    그리고 마지막으로 파일 defaults/preferences/prefs.js 시작시 열 수있는 창 XULRunner가 말할 :

    pref("toolkit.defaultChromeURI", "chrome://webapp/content/main.xul"); 
    

    를 그리고 이미 꽤 많이 있습니다. application.ini에 관한 일반적인 자습서를보십시오.

    +0

    감사 : 배포 패키지에서 포함

    이제 웹 페이지가로드됩니다. 정렬. 일반 Firefox에는 나타나지 않는 많은 렌더링 버그가 있습니다. xulrunner를 -jsconsole 인수로 시작하면 비어있는 응답하지 않는 창을 만든 다음 끊습니다. :/ – Creshal

    +0

    "다른 기본 URI를 예상하는 상대 경로"와 같은 렌더링 버그일까요? –

    +0

    아니요. "하나의 위젯은 훌륭하게 렌더링되지만 ExtJS를 사용하는 모든 것은 페인트 칠판에 불과합니다"와 같은 렌더링 버그가 있습니다.jsconsole을 활성화하면 10 분 (!)이 필요하며 오류 콘솔의 모든 작업은 처리하는 데 1-2 분이 필요합니다. – Creshal