原生App與H5頁面交互筆記
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評論(0)
最近在做一個(gè)項(xiàng)目用到了原生App與H5交互,之前有做過簡單的H5頁面直接調(diào)用原生方法的例子,就是利用UIWebView中的代理方法。
//webview每次加載之前都會調(diào)用這個(gè)方法,利用該代理方法截取JS的href來調(diào)用原生的方法
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType
然而這次的交互要求是進(jìn)行雙向通信,即JS調(diào)用原生App的方法之后,原生App要講相關(guān)參數(shù)信息返回給H5頁面,H5頁面接受到參數(shù)信息后做其他處理。
例:H5頁面的發(fā)布信息按鈕,在點(diǎn)擊按鈕后要在原生端判斷用戶是否登錄,若沒有登錄則彈出原生登錄頁面,登錄成功后將用戶信息返回給H5頁面,繼續(xù)發(fā)布流程。
重點(diǎn)來了!
在這里推薦一個(gè)比較好的第三方庫即:WebViewJavaBridge
地址:https://github.com/marcuswestin/WebViewJavaBridge
通過使用該庫可以輕松實(shí)現(xiàn)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頁面信息的離線緩存
推薦一個(gè)比較好的第三方庫RNCachingURLProtocol,只需要在AppDelegate中加入下面方法即可。
[NSURLProtocolregisterClass:[RNCachingURLProtocolclass]];
地址:https://github.com/rnapier/RNCachingURLProtocol
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%
下載地址
原生App與H5頁面交互筆記下載
相關(guān)電子資料下載
- iOS17.1可能明天發(fā)布,iOS17.1主要修復(fù)哪些問題? 377
- 雙極鎖存霍爾開關(guān)AH542用于電動窗簾,過壓保護(hù)高達(dá)40V 99
- 華為全新鴻蒙蓄勢待發(fā) 僅支持鴻蒙內(nèi)核和鴻蒙系統(tǒng)應(yīng)用 719
- 蘋果手機(jī)系統(tǒng)iOS 17遭用戶質(zhì)疑 731
- iPhone12輻射超標(biāo)?蘋果推送iOS 17.1解決此事 750
- 傳華為囤積零部件 目標(biāo)明年智能手機(jī)出貨7000萬部;消息稱 MiOS 僅限國內(nèi),小米 28208
- 蘋果推送iOS17.0.3,解決iPhone15Pro系列存在機(jī)身過熱 216
- Testin云測兼容和真機(jī)服務(wù)平臺中上線iPhone 15系列手機(jī) 208
- 利爾達(dá)推出搭載HooRiiOS的Matter模組 145
- 運(yùn)放參數(shù)解析:輸入偏置電流(Ibias)和失調(diào)電流(Ios) 128