微信更新的Universal Link一直没时间去解决,后来偶然看到极光有魔链的服务,提供Universal Link的创建,就选择试一下,有点小坑,不过还是解决了。
1、首先,集成JMLink
pod 'JMLink'
2、引用头文件
//引入JMLinkService.h头文件
#import "JMLinkService.h"
// 如果需要使用 idfa 功能所需要引入的头文件(可选)
#import <AdSupport/AdSupport.h>
3、在didFinishLaunchingWithOptions中初始化JMLink代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 如需使用 IDFA 功能请添加此代码并在初始化配置类中设置 advertisingId
NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
JMLinkConfig *config = [[JMLinkConfig alloc] init];
config.appKey = @"your appkey";
config.advertisingId = idfaStr;
[JMLinkService setupWithConfig:config];
}
4、设置回调
//iOS9以下,通过url scheme来唤起app
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
//必写
[JMLinkService routeMLink:url];
return YES;
}
//iOS9+,通过url scheme来唤起app
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(nonnull NSDictionary *)options
{
//必写
[JMLinkService routeMLink:url];
return YES;
}
//通过universal link来唤起app
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler
{
//必写
return [JMLinkService continueUserActivity:userActivity];
}
代码方面就是这么多,下面开始另外的配置
1、在 Target->Info->URL Types 中配置App的URL Scheme,注意不能有下划线,可以使数字字母的组合。
2、要想使用Universal link,需要先打开AppID的Associated Domains功能,首先登录https://developer.apple.com,选择Certificates, Identifiers & Profiles,找到对应的AppID,打开功能开关。
3、打开极光的后台,配置魔链信息
注意保存按钮上方的分配域名,复制下来待会要用。
4、打开xcode的Capablities,在Associated Domains中添加applinks:xxxxxx(上一步复制的域名)
以上魔链的配置已经结束,下面就开始分享的配置,当你的JShare升级到
1.9.0时,新增了一个 universalLink 的字段,这个字段就填写魔链给你分配的域名
https://xxx.xxx.xx/appkey/
一定要注意域名中我用appkey代表的字符串,这块极光文档中并没有提起,这里要填写你极光的Appkey,不然的话分享会一直有二次跳转的现象,这些弄完后,登录微信开放平台,在App设置里把刚才的universalLink填写上去,就大功告成了!