Vue与iOS页面交互

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue与iOS页面交互相关的知识,希望对你有一定的参考价值。

参考技术A 1、vue端

2、ios

在wkwebview代理方法 - ( void )userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message 中实现

message.body会打印vue传来的 a: '1'

IOSCallVue被执行,打印“12345”内容

iOS原生App与H5页面交互笔记

iOS原生App与H5页面交互笔记

字数390 阅读2204 评论1 

      最近在做一个项目用到了原生App与H5交互,之前有做过简单的H5页面直接调用原生方法的例子,就是利用UIWebView中的代理方法

//webview每次加载之前都会调用这个方法,利用该代理方法截取JS的href来调用原生的方法

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType


       然而这次的交互要求是进行双向通信,即JS调用原生App的方法之后,原生App要讲相关参数信息返回给H5页面,H5页面接受到参数信息后做其他处理。

例:H5页面的发布信息按钮,在点击按钮后要在原生端判断用户是否登录,若没有登录则弹出原生登录页面,登录成功后将用户信息返回给H5页面,继续发布流程。


重点来了!

在这里推荐一个比较好的第三方库即:WebViewJavascriptBridge 

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

通过使用该库可以轻松实现JS与原生交互。

//初始化WebViewJavascriptBridge方法

_bridge= [WebViewJavascriptBridge bridgeForWebView:self.BookWebView webViewDelegate:self handler:^(id data,WVJBResponseCallback responseCallback) {

}];

//原生与JS约定接口名为“testObjcCallback”,data是JS传递过来的信息,responseCallback来将信息传递给JS

[_bridge registerHandler:@"testObjcCallback" handler:^(id  data,WVJBResponseCallback responseCallback) {

responseCallback("postInfomationToJS")

}];


UIWebView页面信息的离线缓存

推荐一个比较好的第三方库RNCachingURLProtocol ,只需要在AppDelegate中加入下面方法即可。

[NSURLProtocolregisterClass:[RNCachingURLProtocolclass]];

地址:https://github.com/rnapier/RNCachingURLProtocol

以上是关于Vue与iOS页面交互的主要内容,如果未能解决你的问题,请参考以下文章

基于vue,移动端h5如何和androidiOS客户端进行交互

iOS原生App与H5页面交互笔记

安卓Webview 与 vue h5 使用js交互

详解Vue Elementui中的Tag与页面其它元素相互交互的两三事

iOS原生App与H5页面交互

h5页面实战——与andriod和ios的交互