universal links

2020-01-07  本文已影响0人  若水water

universal links

是iOS9之后 苹果推出的一种能够方便的通过https 链接来启动APP的功能。当你的APP支持universal links 的话,点击配置好的连接,可以跳转到你的APP,如果你的APP没有下载 或者不支持的话,那么点击链接会通过Safari 打开。
当我使用1.8.6 版本的微信SDK实现微信分享,支付等功能的时候,后台网站需要配置universal links,对openSDK分享进行合法性校验。这是一个必填项。那么该如何配置通用链接呢?

{
    "applinks": {
        "apps": [],//必须为空数组
        "details": [ //你的网站可以支持多个APP跳转
            {
              //appid 为你应用的唯一标识,由teamid 和 bundleid 组成
                "appID": "teamId.bundleId",
                "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
            },
            {
                "appID": "teamId.bundleId",
                "paths": [ "*" ]
            }
        ]
    }
}
特别说明:
paths:为  限制哪些路径可以跳转到你的APP,如果不限制 可以使用通配符`*`,在微信SDK ,我设置的path 为一个 /StoreHelper/*,所以我的universal links 为 https://mydomain/StoreHelper/,微信自己会在末尾匹配相应的字符串。
注:在iOS9.3以后,此文件在未压缩状态下都不能超过128k!!!
//以下两个方法是为了兼容低版本,适配 Custom URL scheme 自定义url,之前的传统方式
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
   //微信sdk 中的方法
    return [[HLWXAPIManager manager]hl_handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  //微信sdk 中的方法
    return [[HLWXAPIManager manager]hl_handleOpenURL:url];
}

//以下的方法是通过 https 通用链接 打开APP时 会回调的方法,如果链接配置失败,是不会打开如下方法的,会走上面的方法。在此方法中可以进行判断,因为是配置微信,所以就使用了微信sdk 中的方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    return [[HLWxApiManager manager]hl_handleOpenUniversalLink:userActivity];
}
//微信API 调用(HLWXAPIManager)
- (BOOL)hl_handleOpenURL:(NSURL *)url {
   return [WXApi handleOpenURL:url delegate:self];
}

- (BOOL)hl_handleOpenUniversalLink:(NSUserActivity *)userActivity {
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

<key>LSApplicationQueriesSchemes</key>
    <array>
        <string>wechat</string>
        <string>weixin</string>
        <string>weixinULAPI</string>
    </array>

2、将通用链接 universal link 放到备忘录,长按 能够可以跳转到你的APP
3、如果用于微信sdk ,以下验证的页面只出现一次,而不是每次都出现。


image.png

如果是微信登录,不会出现两次授权弹框


image.png
Universal Link(通用链接)注意点
Universal Link请求 apple-app-site-association时机。
Universal Link的好处
上一篇 下一篇

猜你喜欢

热点阅读