赞
踩
开文:很急着实现的话,请按照最后一句话操作。
一:有一种是替换协议头,即是将 http:// 替换为 itms:// 或者 itms-apps://
然后通过
[[UIApplicationsharedApplication] openURL: itms:// 或者 itms-apps://后面跟上一堆];
但是这种应用场景比较有限制,要跳转的app是我们已知道的,需要提前设置好,不智能
下面我们看第二种方式。
二:判断url是否是跳转APP类型的,专门处理下就行了。
应用场景举例:
1. 电商应用,或者用户留存大的应用,想接个淘宝推广的app,那么用户在操作的时候,客户端是希望点击某个具 体应用 是,能够直接跳到淘宝对应的商品详情页,直接购买了,操作岂不是很简单。
1).如果安装了淘宝,自动跳转淘宝。不安装,直接网页购买。
2.金融项目。各种拉皮条,今天给一个app加个入口,比如是证券,基金,贷款等。想通过网页点击下载,跳转到appStore去下载 对应的产品。那么你前提是不知道是哪个项目的,那么如何通过智能的网页,就能跳转呢。
三:处理办法,下面将OC中UIWebView,WKWebView 以及Swift3.0种WKWebView中将如何设置
首先贴上一个重要的判断方法:
- #pragma mark - 应用跳转专用
- /**
- * url是否是跳转APP类型的
- *
- * @param URL
- *
- * @return BOOL
- */
- - (BOOL)isJumpToExternalAppWithURL:(NSURL *)URL{
- NSSet *validSchemes = [NSSet setWithArray:@[@"http", @"https"]];
- return ![validSchemes containsObject:URL.scheme];
- }
1.OC中UIWebView
- #pragma mark - UIWebViewDelegate
- - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
-
- if([self isJumpToExternalAppWithURL:request.URL]) {
- [[UIApplication sharedApplication] openURL:request.URL];
- return NO;
- }
- return YES;
- }
2.OC中WKWebView
- #pragma mark - WKNavigationDelegate
- - (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
- if([self isJumpToExternalAppWithURL:navigationAction.request.URL]) {
- [[UIApplication sharedApplication] openURL:navigationAction.request.URL];
- decisionHandler(WKNavigationActionPolicyAllow);
- }
- decisionHandler(WKNavigationActionPolicyAllow);
- }
暂时还没具体设置,回头有了再补。。有需要的根据OC类比试试就行了。。
四:如果你一脸懵逼的看着,为啥一个方法就能搞定那么多事,还有很多乱七八糟的写了那么多。。。那么我告诉你,不要慌,不要急,复制那个判断 url是否是跳转APP类型的方法,然后在对应代理方法实现下,然后神奇的事情就出现了。想要的都有了。
如果你喜欢这篇文章,或者有任何疑问,可以扫描第一个二维码,加楼主好友哦
也可以扫第二个二维码,关注楼主个人微信公众号。这里有很多生活,职业,技术相关的文章哦。欢迎您的到来。
微信号: 公众号
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。