2013-07-02 2 views
2

Dojo를 사용하는 PhoneGap 모바일 프로젝트가 있습니다. 지정된 HTML 페이지 (예 :모바일 로컬 스토리지에서 Dojo를 부트 스트랩하는 방법

<script> 
    require(["path/to/myApp", "dojo/domReady!"], function(MyApp) { 
     new MyApp().startup(); 
    }); 
</script> 

경로가// myApp.js 다음 필요한 기능을 수행하는 클래스, 예를 들면 될 수 : index.html을, 우리는이 유사한 자바 스크립트 태그 것이다

define(["dojo/_base/declare", 
    "dojox/mobile/deviceTheme", 
    "dojox/mobile/compat"], 
    function(declare) { 
     return declare(null, { 
      startup: function() { 
       // create and display views etc. 
      } 
     }); 
    }); 

을 우리 시작시

  • 클라이언트 응용 프로그램 버전은 현재의 경우 서버와 확인하기 위해 AJAX를 사용하는 것을 시도하는 것은 다음과 같은 라인을 따라 자동 갱신 기능을 구현합니다.
  • 클라이언트가 만료 된 경우 필요에 따라 새로운 JavaScript (및/또는 HTML, CSS) 을 클라이언트에 보냅니다.
  • 클라이언트는 장치의 로컬 저장소에 JavaScript를 저장합니다.

이 스키마가 주어지면 시작시 클라이언트는 로컬 저장소에서 JavaScript를 읽고 path/to/myApp.js를 대체하여 해당 코드를 실행합니다. 내가 고민하고있는 것은 이것을 Dojo의 "요구하는"AMD 기능으로 묶는 것이다. 의존성을 해결하기 위해 여전히 Dojo 로더를 사용해야한다고 생각합니다.

Dojo 로더는 "필요"를 사용하여 DOM 노드를 찾은 다음 "스크립트"태그를 추가합니다 마지막으로 script 태그의 "src"속성을 "path/to/myApp.js"(이 예제에서)로 설정합니다. 대신이 동작을 변경하여 장치의 로컬 저장소에서 가져온 업데이트 된 JavaScript를 실행하는 방법이 필요합니다. 이렇게하면 버그 수정과 같은 작은 일을 위해 앱 스토어에 반복적으로 다시 배포 할 필요없이 서버에서 자동으로 앱을 업데이트 할 수 있습니다.

+0

참조 http://stackoverflow.com/questions/12709673/application-cache-in-html5-doesnt-work-in-android-phonegap-application/12710632#12710632 – Philippe

+0

아마도 나는 오해하지만이 생각하지 않습니다. 내가 필요한거야. 영구 저장소를 통해 장치에 저장된 JavaScript에서 Dojo (클라이언트 측, PhoneGap, Android의 Java가 아닌)를 부트 스트랩하려고합니다. – 4EverLive

+0

앱 설정에 대한 자세한 내용을 제공해야한다고 생각합니다. – Philippe

답변

0

당신이 찾고있는 것을 않는 AMD 로더가 :

그것은 또한 timestamp functionality을 포함는 서버에 현재 파일 타임 스탬프가있는 JSON 객체. 그런 다음 업데이트 할 파일 배열을 반환하는 서버 구성 요소를 작성해야합니다.

wiki의 "Getting started" 섹션에는 Dojo 예제가 들어 있으므로 Dojo와 함께 사용할 수 있어야한다. 그러나 Dojo 로더를 다른 AMD 호환 로더로 교체하면 문제가 발생할 수 있습니다. 내 생각 엔 이것이 문제가되지 않을 것입니다.

이것은 앱을 업데이트하는 표준 방법이 아니며 일반적인 전화 앱 업데이트 경로를 사용하지 않는 이유는 무엇입니까? 즉, 각 구성 요소를 처음 사용할 때 인터넷 연결이 필요합니다. 구성 요소는 코드에 필요할 때만로드됩니다. 로드되지 않은 응용 프로그램에 숨겨진 구성 요소를 숨긴 다음 갑자기 인터넷 연결이 필요할 수 있습니다.

그러나 이러한 모든 사항을 고려한 것으로 간주되며 앱에 항상 인터넷에 연결되어 있어야하는 경우 문제가되지 않습니다.

또한 앱 사용자에게 추가적인 보안 문제가 있습니다.서버가 해킹 당하면 모든 사용자에게 코드가 전송되어 전화기에서 실행될 수 있습니다. 표준 App Store Update 기능은 사용자를 위해 다른 보안 계층을 추가합니다 (작음에도 불구하고).

+0

감사합니다. 참고로 사용하겠습니다. – 4EverLive

관련 문제