iOS - Cordova 如何调用目标 c 函数?
Posted
技术标签:
【中文标题】iOS - Cordova 如何调用目标 c 函数?【英文标题】:iOS - How does Cordova invoke objective c function? 【发布时间】:2016-06-07 06:48:51 【问题描述】:cordova如何触发objective-c原生方法。例如 - 当用户点击提交按钮(html 按钮)时,应用程序需要调用名为“dataSubmitted”的本机目标 c 函数。
Cordova 是否监控 webview 导航并在内部基于 URL 标签调用方法? 除了监控 webview 导航之外,javascript 是否可以与 Obj-c 原生方法交互?【问题讨论】:
Cordova 确实会监控您的导航以调用本机方法。其他通信方式是使用 WKWebview。检查答案***.com/questions/37156280/… 【参考方案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];
-
使用 cordova.exec 开发您自己的原生插件;
【讨论】:
【参考方案2】:似乎有一些库可用于在 Javascript 和 Objective-C 之间进行通信:
WebViewJavascriptBridge:https://github.com/marcuswestin/WebViewJavascriptBridge
GAJavaScript:https://github.com/newyankeecodeshop/GAJavaScript
我建议你看看这个漂亮的SO Post,它详细解释了 Javascript 和 Objective-C 的交互。
【讨论】:
以上是关于iOS - Cordova 如何调用目标 c 函数?的主要内容,如果未能解决你的问题,请参考以下文章
来自 iOS 4.0.0 中 Native 的 Cordova 插件 Javascript 函数调用
如何使用 Ionic Cordova 框架和自签名证书绕过 iOS 11 中的 SSL 检查
如何在目标 C 中为 iOS healthkit 应用程序添加注意时间?