【问题标题】:iOS - How does Cordova invoke objective c function?iOS - Cordova 如何调用目标 c 函数?
【发布时间】:2016-06-07 06:48:51
【问题描述】:

cordova如何触发objective-c原生方法。例如 - 当用户点击提交按钮(html 按钮)时,应用程序需要调用名为“dataSubmitted”的本机目标 c 函数。

  • Cordova 是否监控 webview 导航并在内部基于 URL 标签调用方法?
  • 除了监控 webview 导航之外,JavaScript 是否可以与 Obj-c 原生方法交互?

【问题讨论】:

标签: ios objective-c cordova


【解决方案1】:

通过 JS 与原生语言进行交流有两种方式。 1. 前往 MainViewController.m -> 找到一个名为 webViewDidFinishLoad 的函数 并添加以下代码 sn-p..

- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
    NSString *pageUrl = [theWebView.request.URL absoluteString];

    if ([pageUrl  containsString:@"xyz"]) {
      //   xyz for xyz.html
    }else if ([pageUrl  containsString:@"abc"]) {
      //  abc for abc.html
    }

    self.webView = theWebView;
    return [super webViewDidFinishLoad:theWebView];
}
  1. 使用 cordova.exec 开发您自己的原生插件;

【讨论】:

    【解决方案2】:

    似乎有一些库可用于在 Javascript 和 Objective-C 之间进行通信:

    WebViewJavascriptBridge:https://github.com/marcuswestin/WebViewJavascriptBridge

    GAJavaScript:https://github.com/newyankeecodeshop/GAJavaScript

    我建议你看看这个漂亮的SO Post,它详细解释了 Javascript 和 Objective-C 的交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2013-06-24
      • 1970-01-01
      • 2018-11-12
      相关资源
      最近更新 更多