美文网首页iOS常用
iOS 配置universalLink 微信提示"未验证应用"

iOS 配置universalLink 微信提示"未验证应用"

作者: Singularity_Lee | 来源:发表于2020-06-09 11:13 被阅读0次

微信平台最近开始逐步对iOS 旧版本 SDK能力(版本号低于1.8.6.1)进行阶梯式调整:
1.2020年3月20日起对旧版本 SDK 发起的分享增加“未验证应用”安全提示
2.2020年6月1日起限制旧版本 SDK 使用微信分享、微信登录、打开小程序、一次性订阅消息等能力

SDK更新说明

解决以上两个问题需要更新微信SDK,新版SDK则需要配置universalLink

通用链接universalLink是iOS9推出的一项新功能,如果你的应用(app)支持通用链接universalLink之后,iOS用户能够在点击网页的链接的时候无缝的重定向到已经安装的app,不需要额外的任何操作。如果没有安装对应的app,那么点击链接会使用Safari打开网页。在iOS9以前,对于各种浏览器,Safari中唤醒app的需求,我们通常是只能使用scheme的方式。

Universal Link配置方法

1.配置 apple-app-site-association 文件

创建json文件,文件名必须为apple-app-site-association不需要.json拓展名

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "teamID.bundleID",
        "paths": [ "*" ]
      }
    ]
  }
}

这里的 "appID"指的是TeamID+BundleId的组成,配置时用.拼接,TeamID和BundleId可以在开发者网站中找到

开发者中心

生成apple-app-site-association文件后,需将其上传到服务器App所用域名的.well-known的目录下或者根目录

  • iOS会先请求.well-known的域名
  • apple-app-site-association只会在APP第一次启动的时候请求一次,因此文件的任何更新的验证都需要APP重新安装或App Store更新

微信对Universal Links配置要求
a)Universal Links必须支持https
b)Universal Links配置的paths不能带query参数
c)微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符/* (因此微信对应的path则为"paths": [ "/*" ]

2.打开Associated Domains开关,将Universal Links域名加到配置上

在项目Signing&Capabilities中开启Associated Domains功能,并添加Universal Links

配置路径

服务器必须支持SSL
Domains可以添加多个
Domains必须以applinks:开头

Domains填写的网址为微信开放平台里APP开发信息中的Universal Links项,注意填写Domains时不需要https://的前缀

路径
3.APPDelegate中配置continueUserActivity(只更新微信SDK可忽略此步骤)
#pragma mark Universal Link
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    if ([userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb]) {
        NSURL *url = userActivity.webpageURL;
        if ([url.host isEqualToString:@"公司域名"] ) {
            //打开对应页面
        }else{
            [[UIApplication sharedApplication]openURL:url];
        }
    }
    return YES;
}

Safari输入相关网址验证即可

通用链接常见问题


项目中微信相关配置

微信开放平台中配置好AppID ,AppSecretUniversal Links(注意项目中配置与开放平台中需配置相同,否则会报universal link校验不通过或"errcode" = 40125)

1)Info ->URL Types添加URL scheme为你所注册的appid

scheme

2)Info.plist->LSApplicationQueriesSchemes添加weixinweixinULAPI

LSApplicationQueriesSchemes

3)重写AppDelegateSceneDelegatecontinueUserActivity方法

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRest
oring>> * __nullable restorableObjects))restorationHandler {
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

官方接入文档

相关文章

网友评论

    本文标题:iOS 配置universalLink 微信提示"未验证应用"

    本文链接:https://www.haomeiwen.com/subject/fgajtktx.html