2011-04-13 2 views
1

나는 BB 개발에 새로운, 년 동안 아이폰 애플 리케이션을 개발했다. ,검은 딸기 webworks 이상한 행동과 자바 스크립트

<?xml version="1.0" encoding="utf-8"?> 
<widget xmlns:rim="http://www.blackberry.com/ns/widgets" version="1.0.0" rim:header="RIM-Widget:rim/widget" xmlns="http://www.w3.org/ns/widgets"> 
    <name>007</name> 
    <description>Sample Application created using the BlackBerry Widget SDK that demonstrates how to use the Menu and MenuItem objects found within the Widget API collection.</description> 
    <author href="http://na.blackberry.com/eng/developers/browserdev/widgetsdk.jsp" rim:copyright="2010" email="[email protected]">Adam Stanley</author> 
    <content src="index.html" /> 
    <feature id="blackberry.ui.menu" required="true" version="1.0.0.0" /> 
    <rim:loadingScreen backgroundColor="#c0c0c0" /> 
    <license href="" /> 
</widget> 

지난 SDK WebWorks를 설치 한 데 : 내가 가지고있는, 구성 파일에서

function initMenus() { 
    var item = new blackberry.ui.menu.MenuItem(false, 1, "Save", saveMe); 
    var item2 = new blackberry.ui.menu.MenuItem(false, 2, "Load", loadMe); 
    blackberry.ui.menu.addMenuItem(item); 
    blackberry.ui.menu.addMenuItem(item2); 
} 

function saveMe() 
{ 
    localStorage.pixels = window.pageYOffset; 
} 

function loadMe() 
{ 
    window.scrollTo(0, localStorage.pixels); 
} 

:

는 다음과 같은 간단한 메뉴,에 onLoad를 호출 내가 뭘하려고 오전있다 OS5 및 OS6 제품군의 에뮬레이터를 사용해 볼 수 있습니다.

이제 OS6 시뮬레이터로 모든 것이 잘됩니다. 자바 스크립트 함수가 제대로 호출됩니다.

OS5 시뮬레이터에서는 메뉴 항목이 표시되지만 일단 클릭하면 아무 일도 일어나지 않습니다. localStorage에 데이터를 저장하고로드하는 대신 간단한 경고로도 시도했지만 메뉴 항목을 클릭하면 함수가 호출되지 않습니다.

누구나 내가 뭘 잘못하고 있는지 알 수 있습니까?

동일한 응용 프로그램에서 blackberry.ui.dialogblackberry.ui.menu을 선언 할 때 알려진 문제가 있음을 알고 있지만 단지 blackberry.ui.menu을 선언하고 있습니다.

답변

1

두 함수 모두에서 localStorage에 액세스하려고합니다. OS5에서는 일반 HTML5 localStorage가 지원되지 않으며 Google Gears 메소드 만 지원됩니다. 프로젝트에서 html5_init.js를 사용하고 있습니까? 그것을 추가하려면 Follow these instructions. OS5 용 Google Gears to HTML5 "변환기"입니다.

문제가되지 않을 수도 있지만 두 버전의 OS에서 모두 작동하는 Webworks 응용 프로그램을 작성하는 경우 필요합니다.

+0

감사합니다. Andrew, 당신은 매우 친절했습니다! 귀하의 대답은 매우 중요하며 문서에서 더 잘 지적되어야하지만 실제로 HTML5를 사용하지는 않습니다. (예,이 샘플에서는 네, 실제로는 그 모든 기능을 쓸 수 있습니다). 문제는 그들이 단순히 호출되지 않는다는 것입니다. –

+0

** 시도해 보았지만 작동하지 않습니까? ** 내 생각에 localStorage가 존재하지 않아 존재하지 않는 객체에 액세스하려고했을 때 함수 호출이 중단되었습니다. 함수를'function saveMe() {alert ("Save Menu Item Chosen");}'과 같이 간단하게 변경하여 메뉴 항목 함수가 실제로 호출되고 있는지 확인하십시오. –

+0

네, 맞습니다! 정말 고맙습니다!!! –