iOS中,URL.schemes在拦截webView事件和app之间通信的应用

一。需求描述

URL.scheme的作用可能有很多,本文章中仅仅简单总结下自己在开发中用到过的两种情况:

1.拦截UIWebView中的事件,实现webView和native的通信。

2.两个不同app之间的跳转和返回.(三方支付,分享等等)。

二。需求实现

需求一:拦截UIWebView中的事件,实现webView和native的通信。

网上有开源框架,可以实现native 和 js直接互相调用 WebViewJavascriptBridge,如果只是需要简单的调用的话,完全可以利用UIWebView的代理方法代替

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType,代码如下:

需求二:两个不同app之间的跳转和返回.(三方支付,分享等等)


 1. 使用URL.scheme原因

       由于苹果的app都是在沙盒中,相互是不能访问数据的。但是苹果还是给出了一个可以在app之间跳转的方法:URL Scheme。简单的说,URL Scheme就是一个可以让app相互之间可以跳转的协议。每个app的URL Scheme都是不一样的,如果存在一样的URL Scheme,那么系统就会响应先安装那个app的URL Scheme,因为后安装的app的URL Scheme被覆盖掉了,是不能被调用的。

2.URL Scheme怎么使用

需求:如果我们希望A app点击某一按钮唤起 B app。被唤起后的B app点击取消按钮,回到A app.

2.1  A app 和B app中url schemes的设置

A app中plist文件中配置一下其跳转协议即可,如下图所示:

“test://test.App.com”就是A app 跳转协议了.

B app中plist文件中配置一下其跳转协议即可,如下图所示:

“cont://wallet.Bapp.com”就是B app 跳转协议了.

2.2  A app 点击某一按钮 唤起 B app

2.3  B app 处理A app的唤起请求

2.4 B app 返回 A app

你可能感兴趣的:(iOS中,URL.schemes在拦截webView事件和app之间通信的应用)