2011-05-10 1 views
2

현재 PhoneGap 용 HelloWorld 플러그인을 작성 중입니다. 기능을 테스트하기 위해 사용하고 있습니다. official documentation을 따르고 있습니다.PhoneGap.exec가 작동하지 않습니다.

 window.plugins.testplugin.action(
     function methodA() { 
     alert("A"); 
     },function methodB() { 
     alert("B"); 
     } 
    ); 

목적-C 모듈은 단순히 무작위로 두 콜백 중 하나를 호출 나는 내 index.html 페이지 내부의 onDeviceReady() 함수에 다음 코드를 추가했다. 불행히도 아무 일도 일어나지 않습니다. 나는 onDeviceReady() 내부에서 다른 하나의 PhoneGap API를 통보하려고 시도했다. 단지 작동하고 있지만,이 경우에는 아무것도하지 않는다. 라이브러리가 전혀 작동하지 않는 것 같지만 제거하면 다음을 제거합니다.

<script type="text/javascript" charset="utf-8" src="phonegap.0.9.5.js"></script> 

deviceready 이벤트가 중지됩니다. 이것은 어떻게 든 라이브러리가 활성화되었지만 제대로 작동하지 않음을 의미합니다.

어떤 도움이 필요합니까?

고마워요.

답변

0

문제가 해결되었습니다. 폰갭 라이브러리 기능을, 어떻게 든,

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest 
    *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    return YES 
} 

된 손상 : 기본적으로, 응용 프로그램 위임하는 .m 파일의 수정 난 (버전 0.9.5에서) Safari에서 외부 링크를 여는 응용 프로그램을 방지하기 위해 한 . 올바른 접근 방식은 다음과 같습니다.

- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest 
    *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
NSURL *url = [request URL]; 
// add any other schemes you want to support, or perform additional 
// tests on the url before deciding what to do -jm 
if([[url scheme] isEqualToString:@"http"] || 
    [[url scheme] isEqualToString:@"https"]) 
{ 
    [[UIApplication sharedApplication] openURL:url]; 
    return YES; 
} 

else 
{ 
    return [ super webView:theWebView shouldStartLoadWithRequest:request 
      navigationType:navigationType ]; 
} 
} 
0

내 PhoneGap.exec가 작동하지 않을 것으로 의심되었습니다. 그래서 나는 phonegap.js 파일에 몰래 들어갔다. 그런 다음 디버깅 경고를 추가했습니다. 오류 메시지 "ReferenceError : 변수 PluginManager를 찾을 수 없습니다."가 나타납니다. 동일한 문제가 발생하면 phonegap.js 파일을 업데이트하십시오. 내 것은 부패했다.

관련 문제