2012-04-24 3 views
1

android 및 ios에서 잘 작동하는 jqm을 사용하는 phonegap 앱이 있습니다. 난 이력에 문제가 WP7 포팅 WP7.5, phonegap 및 jqm을 결합한 내역 문제

구체적 history.back() (또한 .go (-1) 등). 이것은 이전 '페이지'가 동일한 물리적 html 파일에 있었던 역사에서 돌아가는 것을 의미합니다. data-role = page div.

일반 브라우저에서 jwm 사이트를 사용하는 것이 좋습니다 (동일한 html 파일에서 별도의 '페이지'사용). 또한, 우리가 하나의 HTML 파일에서 다른 응용 프로그램으로 이동할 때 history.back()을 사용하는 것이 좋습니다. WP7.5, jqm 및 PG의 특정 조합입니다.

누구나 해결책을 찾아 냈습니까? 그것은 나를 미치게 만들고 PG 1.4.1 및 jwm 1.0 이후로 문제가되었습니다.

편집 1 : WP7.5에서 webview를 초기화하는 phonegap 프로세스가로드 된 후 jqm 히스토리 대체를 대체하여 무시할 수 있습니다.

EDIT 2 : jqm과 관련하여 명확하게 내역을 수정할 수 없습니다. 는 '페이지'변화가있을 때마다, history.length 0

EDIT 3 여전히 : 내가 '역사'개체를 검사 할 때, 내가 replaceState 또는 pushState에 대한 기능이없는 발견 - 나는 알고있다 jqm이 history nav에 이것을 사용합니다. 아마 그게 문제입니다.

답변

1

ok -이 방법은 완벽하지 않지만 다음은 나를위한 해결책 (읽기 : 핵)입니다. 만 실제 해시 변경 사항이 아닌 페이지 해시 변경에 사용할 수 있습니다 (단, 이에 대한 정규식 검사를 추가 할 수 있음). 에서 실행되는 코드에서이 어딘가에 넣어 ondeviceready :

if (device.platform == 'WinCE') { 
    window.history.back = function() { 
     var p = $.mobile.urlHistory.getPrev(); 
     if (p) { 
      $.mobile.changePage("#" + p.pageUrl, { reverse: true }); 
      $.mobile.urlHistory.stack.splice(-2, 2); 
      $.mobile.urlHistory.activeIndex -= 2; 
     } 
    } 
}