前言 每次接入三方sdk会遇到各种各样的坑,三方的文档写的很简易,下面是我们接入跳转微信小程序的坑以及详细介绍
第一步登录苹果开发者中心配置
1.登录苹果开发者中心 打开 Associated Domains 如图1
图1.png
2.在ios项目里面配置 applinks 《图2》,applinks:你的域名,比如 applinks:baidu.com ,baidu.com就是域前面是固定格式
图2.png
第二步 服务器配置《必须配置》
1)创建一个json文件,名称必须为 apple-app-site-association,⚠️该文件不可带 .json 的后缀名
apple-app-site-association 文件必须放在https服务器的根目录下,例:https://baidu.com 这个路径下 ⚠️一定是根目录,也就是说该文件必须是一级目录,供下载使用
apple-app-site-association 文件格式:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "teamID.bundleId",
"paths": ["*"]
}
]
}
}
appID 格式为 teamID.bundleId形式,比如说我的teamID是12324,bundleId是com.test.app
那么我的appID就是:12324.com.test.app。
图3.png
paths:使用*配置,则整个网站都可以使用
图4.png
第三步 集成微信sdk
调用微信api注册我们的appid 与universalLink
universalLink 你的域名比如百度 如下
[WXApi registerApp:@"微信appid 不是小程序id" universalLink:@"https://baidu.com/"];
在AppDelegate实现实现以下方法
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary *)options {
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [WXApi handleOpenURL:url delegate:self];
}
//对应我们配置的 Universal Links
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray> * __nullable restorableObjects))restorationHandler
{
return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}
4,接下来开始测试
下面遇到一个坑,小程序是前段开发的就问他小程序的userName是多少,前段妹子直接报了小程序的名字,我再三确认他说小程序的userName就是小程序的名字。好吧就开始测试了。微信登录分享都正常未读小程序跳转不过去。
最好查阅资料才发现小程序的userName就是小程序的初始id 登录小程序开放中心找到点击设置
查看方法如图5
图5.png
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
launchMiniProgramReq.userName = @"小程序的初始id";
launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;
return [WXApi sendReq:launchMiniProgramReq completion:nil];
写在后面
集成所遇到的坑,
第一个就是小程序的userName没有搞清楚是什么,微信官方文档也没有详细的介绍
第二个坑,就是没有让服务端配置 apple-app-site-association 导致我这里跳转成功了有自动返回,或者需要跳转两次才可以打开对应的小程序。