2014-04-03 2 views
0

외부 서버 (인터넷)와 동기화되는 데이터베이스가 포함 된 Cordova/Phonegap 응용 프로그램을 개발 중이며 데이터베이스 서버가 자주 변경되며 응용 프로그램을 최신 상태로 유지하라는 조언은 무엇입니까? 내 Cordova/Phoengap 데이터베이스를 업데이트 할 때?

나는 두 가지 생각 :

  1. 의 version.txt 버전 번호를 포함라는 파일을 확인, 그래서 난 단지 서버의 파일을 볼 필요하고 더 많은 수를 포함하는 경우 다음 실행 업데이트 내부 데이터베이스

  2. 는 버전 번호 테이블을 확인하고 당신은 내게 조언을 무엇

항목 1과 동일합니까?

감사합니다.

답변

1

나는 현재 버전 번호를 포함하는 JSON 객체를 반환하는 서버에 엔드 포인트를 작성하여 이와 비슷한 작업을 수행했습니다.

내 앱이로드되면 엔드 포인트에 요청을 보내고 JSON 반환 값을 기기의 localStorage 변수와 비교합니다.

JSON 반환 값이 localStorage 변수보다 크면 데이터베이스가 업데이트 된 다음 localStorage 변수가 현재 JSON 반환 값으로 업데이트됩니다.

예 :

function updateDatabase() { 
    $.ajax({ 
     url: 'http://your_web_site.tdl/databaseversion/', 
     cache: false, 
     type: 'GET', 
     success: function(result, status, xhr) { 
      var currentVersion = result.version; 
      if(!window.localStorage.getItem('localVersion') || window.localStorage.getItem('localVersion') < currentVersion) { 
       //UPDATE DATABASE CODE HERE 
       window.localStorage.setItem('localVersion',currentVersion); 
      } 
      else{ 
       //NO NEED TO UPDATE 
      } 
     }, 
     error: function() { 
      //CANNOT GET CURRENT VERSION FROM SERVER 
     } 

    }); 
} 

이 서버는 JSON 반환한다고 가정합니다 :

{ version: 'X' } 
+0

감사합니다, 그러나 그것은 무엇을 의미 하는가 다음 device'에서'로컬 스토리지 변수를? – candlejack

+1

localStorage는 Cordova (및 html5 사양)에서 사용할 수있는 키/값 (문자열 전용) 저장소입니다. 'window.localStorage.setItem ('key', 'value')'및'window.localStorage.getItem ('key')'를 사용합니다. 이렇게하면 영구적 인 변수를 응용 프로그램에 저장할 수 있으며 응용 프로그램 캐시를 지우거나 응용 프로그램을 제거한 경우에만 사라집니다. –

+0

나는 당신의 충고를 고려할 것이다. +1은 대답이 아니다. 왜냐하면'당신이 앱 캐시를 지우면 사라져 버리기 때문이다. '사용자는 마스터 클리너 나 다른 것을 사용할 수 있기 때문이다 ... – candlejack

관련 문제