2013-02-01 2 views
4

하나의 JQM/Phonegap App에서 페이지간에 데이터를 전달하는 것에 대한 질문이 있습니다.Phonegap - 페이지간에 JS 데이터 전달

검색어, 위치 및 기타 필터 값과 같은 일부 데이터가있는 JS 개체가있는 경우 예를 들어 사용자가 검색 페이지에서 설정 페이지로 이동하여 다시 검색 페이지로 돌아갑니다. .. 미리보기 페이지에있는 정보를 어떻게 저장할 수 있습니까? 쿠키와 같은 것이 있습니까? 아니면 sqlite를 사용하여 사용자가 검색 페이지를 방문 할 때마다 정보를 저장하고 읽어야합니까?

답변

12

LocalStorage을 사용하면 매우 간단합니다. (내가 사용했던이 해시 태그 방식을

Storage.prototype.setObject = function(key, value) { this.setItem(key, JSON.stringify(value)); } 
Storage.prototype.getObject = function(key) { var value = this.getItem(key);return value && JSON.parse(value); } 

// Storing a JSON object 
localStorage.setObject('myObject', {key1: 'value', key2: 'value2'}); 

// Accessing the object 
localStorage.getObject('myObject') 
+0

iOS와 Android 모두에서 localStorage가 작동합니까? 나는 어딘가에, 안드로이드는 몇 가지 문제가 있다는 것을 읽었 는가? –

+1

둘 다 함께 사용할 수 있습니다. iOS 및 Android 버전 (http://caniuse.com/namevalue-storage)과 호환되는 HTML5 기능입니다. – davids

+0

localStorage의 단점은 객체가 아니라 문자열을 저장하는 것입니다 . 따라서 직렬화 된 객체 (YMMV)를 저장하거나 객체의 속성을 개별적으로 저장해야합니다. – YiddishNinja

1

하나의 가능한 접근법은 쿼리 문자열을 사용하여 페이지간에 데이터를주고 받고, 페이지 URL에 추가 할 수 있다고 생각합니다. newpage.html? val = 12와 같이, 전달해야하는 데이터의 양이 많지 않으면이 appraoch가 더 좋으며 sqlite보다 훨씬 가볍습니다. 또한 관계형 인 sqlite와는 달리 키 값 쌍인 localstorage를 사용할 수 있습니다. sqlite보다 구현이 훨씬 쉽습니다 (비록 영속적이지 않습니다).

jquery mobile 및 sencha touch와 같은 프레임 워크가 여러 HTML 페이지를 필요로하는 경우 recoonsider를 사용하여 여러 div가있는 HTML 페이지에서 앱의 screeens로 잘 작동하도록 할 수 있습니다. 그래서 당신은 그들에게 시도를 줄 수 있습니다.

+0

필자는이 방법을 사용했습니다. 패스 할 항목이 1 ~ 2 개 밖에 없기 때문입니다. # 태그를 통해 전달한 다음 결과를 JS와 배열로 나눌 수 있습니다. – jasonflaherty

1

: 일반 텍스트가 충분하지 않습니다 당신은 데이터 구조를 저장해야

// Writing 'something' in localStorage.myvariable 
localStorage.myvariable = 'something' 

// Displaying the previous variable 
console.log(localStorage.myvariable) 

경우에, 당신은 뭔가를 구현할 수 있습니다 : 그것은 당신이 일반 텍스트를 저장할 수 있습니다 2014), 나는 1 ~ 2 개의 항목 만 통과 할 수 있습니다.

URL에서

:?

var str = str.window.location.hash.substr(1); 
var res = str.split("?"); 
alert(res[0]+","+res[1]); 
: index.html을 #의 VAR1이

해결 페이지를 VAR2 당신은 예를 들어 ...에 JS와 결과를 분할 배열 한 후 # 태그를 통해 전달할 수 있습니다

누군가를 돕는 희망. LocalStorage와 다른 옵션은 IMO를 해제하는 이러한 유형의 경우 너무 무겁습니다.

관련 문제