×

原生App与H5页面交互笔记

消耗积分:1 | 格式:rar | 大小:0.3 MB | 2017-09-26

分享资料个

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

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

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

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

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

  重点来了!

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

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

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

  //初始化WebViewJavaBridge方法

  _bridge= [WebViewJavaBridge 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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !