前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS 禁止使用H5加载核心功能的解决办法

iOS 禁止使用H5加载核心功能的解决办法

作者头像
大话swift
发布2020-03-26 17:46:09
1.2K0
发布2020-03-26 17:46:09
举报
文章被收录于专栏:大话swift

iOS 审核规则的每次变动对于iOSer来说都是一次大的震荡,今天我们针对禁用H5加载核心功能给出一种解决办法。 众所周知iOS时可用通过URL Schemes来实现App跳转传值的,不过这种方式正在被逐渐废弃(当然了支付宝依然在用,但是微信支付已经启用了Universial Link)改投更加好用的Universial Link啦。

今天我们就通过使用Universial Link的方式来实现从Safari跳转回App与数据传递

我们先来回顾一下app跳转至safari

代码语言:javascript
复制

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://localhost:8080/users/index"]
 
                                       options:nil
 
                             completionHandler:^(BOOL success) {
 
 NSLog(@"跳转结果:%d",success);
 
 }];
 

有了App跳转Safari我们来看看今天主角—Universial Link(具体介绍可以自行百度或者参考官网说明) 1 App配置

  1. App的Info.plist中配置URL Schemes用于顾虑返回的url
  1. Signing&Capabilities配置Associated Domains 独自与此处Associated Domains是需要在开发者中心的证书中配置此处不再赘述

2 Safari如何在web内跳转App

此处我们本地搭建服务做测试

代码语言:javascript
复制
r.GET("/users/index", func(c *gin.Context) {
     c.HTML(http.StatusOK, "users/index.tmpl", gin.H{
 "title": "Users",
 })
 })
 r.Run()

下面是对应的html,我们通过点击a标签实现跳转并关闭当前页面

代码语言:javascript
复制

{{ define "users/index.tmpl" }}
 
<html><h1>
 
 {{ .title }}
 
</h1>
 
<a href="https://fisxxh.xx.com/fish_url/pay/?returnKey=&ret=-2" onClick="custom_close()">通过 Universial Link跳转返回</a>
 
<br>
 
<br>
 
<br>
 
<br>
 


 
<p>Using users/index.tmpl</p>
 


 
<script language="javascript">
 
function custom_close(){
 
    setInterval(function(){
 
            window.close();
 
 }, 500);
 
}
 
 }
 
</script>
 
</html>
 
{{ end }}
 

3 App内部拦截Universial Link响应

代码语言:javascript
复制

-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
 
 if( [userActivity.webpageURL.absoluteString containsString:WXAPPID]){
 
 //从微信跳转进来的
 
 //微信传递的数据  _webpageURL
 
 return [WXApi handleOpenUniversalLink:userActivity
 
 delegate:[YuWeChatShareManager manager]];
 
 }else{
 
 [self.window.rootViewController makeToask:[NSString stringWithFormat:@"通过universial link传递回来的参数:%@",userActivity.webpageURL.query]];
 
 }
 
 return NO;
 


 
}
 

这里需要有一点我们可以在这个返回的连接中添加我们的URL Schemes来标注来区分是哪个对应的group跳转的,例如:微信的跳转或者我们的App自定跳转从而从大类上进行不同的跳转

至此基本上我们就能应对上iOS针对H5规则变更的审核啦,下面我们梳理一下答题思路

1 App开启Universial Link功能 2 定义自身的跳转的URL Schemes 3 App跳转Safari来实现之前内嵌Web的功能,然后按照link的方式来操作,系统会自动识别来跳转回App 4 App内部拦截Universial Link对应的响应做出逻辑判断

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大话swift 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档