原生App与H5页面交互笔记
最近在做一个项目用到了原生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%
不好我反对
(0) 0%
下载地址
原生App与H5页面交互笔记下载
相关电子资料下载
- iOS17.1可能明天发布,iOS17.1主要修复哪些问题? 377
- 双极锁存霍尔开关AH542用于电动窗帘,过压保护高达40V 99
- 华为全新鸿蒙蓄势待发 仅支持鸿蒙内核和鸿蒙系统应用 719
- 苹果手机系统iOS 17遭用户质疑 731
- iPhone12辐射超标?苹果推送iOS 17.1解决此事 750
- 传华为囤积零部件 目标明年智能手机出货7000万部;消息称 MiOS 仅限国内,小米 28208
- 苹果推送iOS17.0.3,解决iPhone15Pro系列存在机身过热 216
- Testin云测兼容和真机服务平台中上线iPhone 15系列手机 208
- 利尔达推出搭载HooRiiOS的Matter模组 145
- 运放参数解析:输入偏置电流(Ibias)和失调电流(Ios) 128