0

URL 要求処理に使用している間、 Phonegap 通知 (navigator.notification.alertおよびnavigator.notification.confirm) が機能しません。shouldStartLoadWithRequest

Javascript:

function onBodyLoad() {
  document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
  navigator.notification.alert("Cordova is working");
}

目標 C:

- (BOOL)webView:(UIWebView *)webView2
shouldStartLoadWithRequest:(NSURLRequest *)request
  navigationType:(UIWebViewNavigationType)navigationType{
    if ([[[request URL] absoluteString] hasPrefix:@"js-call:"]) {
      // Extract the selector name from the URL
      NSString *requestString = [[request URL] absoluteString];
      NSArray *components = [requestString componentsSeparatedByString:@":"];
      NSString *function = [components objectAtIndex:1];
      NSLog(@"the function name is  %@",function);
      // Call the given selector
      [self performSelector:NSSelectorFromString(function)];
      // Cancel the location change
      return NO;
    }
    return YES;
  }

私を助けてください。

4

1 に答える 1

1

非常によく似た問題に遭遇しました。最後の行を変更する

return YES;

return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType];

プラグインへのすべてのコマンドはgap://bridgeを通過します。shouldStartLoadWithRequestは、そのような呼び出しごとに呼び出されます。したがって、デフォルトでYESに設定されていることが問題のようです。実際には、gap://呼び出しに対してNOを返す必要があります。

于 2012-07-20T20:25:09.533 に答える