一巡扇。需求描述
URL.scheme的作用可能有很多扭仁,本文章中僅僅簡單總結(jié)下自己在開發(fā)中用到過的兩種情況:
1.攔截UIWebView中的事件,實現(xiàn)webView和native的通信厅翔。
2.兩個不同app之間的跳轉(zhuǎn)和返回.(三方支付,分享等等)乖坠。
二。需求實現(xiàn)
需求一:攔截UIWebView中的事件刀闷,實現(xiàn)webView和native的通信熊泵。
網(wǎng)上有開源框架仰迁,可以實現(xiàn)native 和 js直接互相調(diào)用 WebViewJavascriptBridge,如果只是需要簡單的調(diào)用的話,完全可以利用UIWebView的代理方法代替
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType顽分,代碼如下:
需求二:兩個不同app之間的跳轉(zhuǎn)和返回.(三方支付,分享等等)
?1.?使用URL.scheme原因:
?? ? ? 由于蘋果的app都是在沙盒中轩勘,相互是不能訪問數(shù)據(jù)的。但是蘋果還是給出了一個可以在app之間跳轉(zhuǎn)的方法:URL Scheme怯邪。簡單的說绊寻,URL Scheme就是一個可以讓app相互之間可以跳轉(zhuǎn)的協(xié)議。每個app的URL Scheme都是不一樣的悬秉,如果存在一樣的URL Scheme澄步,那么系統(tǒng)就會響應(yīng)先安裝那個app的URL Scheme,因為后安裝的app的URL Scheme被覆蓋掉了和泌,是不能被調(diào)用的村缸。
2.URL Scheme怎么使用
需求:如果我們希望A app點擊某一按鈕喚起 B app。被喚起后的B app點擊取消按鈕武氓,回到A app.
2.1 ?A app 和B app中url schemes的設(shè)置
A app中plist文件中配置一下其跳轉(zhuǎn)協(xié)議即可梯皿,如下圖所示:
“test://test.App.com”就是A app 跳轉(zhuǎn)協(xié)議了.
B app中plist文件中配置一下其跳轉(zhuǎn)協(xié)議即可,如下圖所示:
“cont://wallet.Bapp.com”就是B app 跳轉(zhuǎn)協(xié)議了.
2.2 ?A app 點擊某一按鈕 喚起 B app
2.3 ?B app 處理A app的喚起請求
2.4 B app 返回 A app