Angular / HTML5与iOS WKWebView的通信

我们正在尝试从Angular 6,HTML5项目向发送信号到iOS WKWebView 的最佳选择。

任何示例示例都将非常棒。

我们想做的是:在Angular网页上有一个按钮,单击该按钮应通知iOS执行某些操作。 我们在iOS WKWebView中加载Angular页面。

关于Angular 5 and native IOS/Android communication,这不是很清楚。如果从ios和角度端都有可用的示例,那就太好了。

InitialQwertyJGW 回答:Angular / HTML5与iOS WKWebView的通信

Apple在WebKit中提供了一种机制,可将消息从您的HTML发送到本地:

在您的HTML页面中,致电:

window.webkit.messageHandlers.messageHandler.postMessage("Pass your data here...");

其中messageHandler是您的iOS代码中收到的消息的名称。 "Pass your data here..."是通过messageHandler消息传递到iOS的数据。

在您的iOS代码中:

使用WKUserContentController的add(_:name:)方法添加消息处理程序,如下所示:

webView.configuration.userContentController.add(self,name: "messageHandler")

最后,在您的ViewController代码中实现WKScriptMessageHandler的userContentController:didReceiveScriptMessage:方法,如:

func userContentController(_ userContentController: WKUserContentController,didReceive message: WKScriptMessage) {
     if message.name == "messageHandler" {
          // Your Message handler code goes here...            
     }

根据add(_:name:)方法的Apple文档:

  

添加名称为name的脚本消息处理程序   导致在所有使用用户内容控制器的Web视图的所有框架中定义JavaScript函数window.webkit.messageHandlers.name.postMessage(messageBody)。

Apple Documentation link

本文链接:https://www.f2er.com/3142585.html

大家都在问