微信分享跳转2次,微信分享跳转微信正在连接,分享微信没反应
这几天搞微信分享,还是有一些坑在里面的,记录踩过的坑;
首先按照微信说明文档,在微信平台申请AppId,和AppSecret,申请后如下所示:
WeChat1040e2bc672896405567447fb1a115fb.png
注意Universal Links: 最好是一个域名加一段后缀地址,如 https://www.baidu.com/appNameExample/,后缀地址必须以 / 结尾
配置好后,接下来就开始准备一个json 文件上传到服务器,保证能访问到。注意文件不要.json后缀,至于别的文档说需要上传到根目录 下, 或者 .well-known 目录下,我倒是没有这么做,因为我们公司没有https 域名的地址,所以就没有要求这么多了。
json 文件如下,下面示例为2个App ,需要做微信分享:
{
"applinks": {
"apps": [],
"details": [{
"appID": "团队Id.com.onlineTeching.student",
"paths": ["/ysgqStudent/", "/ysgqStudent/*"]
}, {
"appID": "团队Id.com.onlineTeching.teacher",
"paths": ["/ysgqTeacher", "/ysgqTeacher/*"]
}]
}
}
这里需要注意的是, 就是一级地址,前面一个/ysgqStudent/,需要加/,后面一个相同的/ysgqStudent/*,需要加一个※,这是标配吧。要不然真不知道问题出在哪了。
上传后文件地址是 https://preoapi.ysgq.net/apple-app-site-association,不知道和文件链接地址有没有关系,点开地址,出现如下内容:
{"applinks":{"apps":[],"details":[{"appID":"TT9L7QSCDD.com.onlineTeching.teacher","paths":["/ysgqTeacher/","/ysgqTeacher/*"]},{"appID":"TT9L7QSCDD.com.onlineTeching.student","paths":["/ysgqStudent/","/ysgqStudent/*"]}]}}
项目工程配置如下:
image.png
工程info 配置LSApplicationQueriesSchemes
image.png
底部url types 配置:
image.png
在appdelegate 中注册SDK配置,这里以友盟分享微信为例:
[[UMSocialManager defaultManager] openLog:YES];
[UMConfigure initWithAppkey:appKey channel:@"App Store"];
[UMConfigure setLogEnabled:YES];
[UMConfigure setAnalyticsEnabled:YES];
//配置微信平台的Universal Links
//微信和QQ完整版会校验合法的universalLink,不设置会在初始化平台失败
[UMSocialGlobal shareInstance].universalLinkDic = @{@(UMSocialPlatformType_WechatSession):kStudentUniversalLinks,
@(UMSocialPlatformType_WechatTimeLine):kStudentUniversalLinks};
/* 设置微信的appKey和appSecret */
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:kShareWeChatStudentAppId appSecret:kShareWeChatStudentAppSecret redirectURL:nil];
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatTimeLine appKey:kShareWeChatStudentAppId appSecret:kShareWeChatStudentAppSecret redirectURL:nil];
/*设置小程序回调app的回调*/
[[UMSocialManager defaultManager] setLauchFromPlatform:UMSocialPlatformType_WechatTimeLine completion:^(id userInfoResponse,NSError*error){
NSLog(@"setLauchFromPlatform:userInfoResponse:%@",userInfoResponse);
}];
还有最重要一步,appdelegate中需要添加url 重定向:
这里以接入友盟为例,需要实现下面方法
-(BOOL)application:(UIApplication*)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id>*)options
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
BOOL result =[[UMSocialManager defaultManager] handleOpenURL:url options:options];
if(!result){
// 其他如支付等SDK的回调
}
return result;
}
-(BOOL)application:(UIApplication*)application continueUserActivity:(NSUserActivity*)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler
{
if(![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]){
// 其他SDK的回调
}
return YES;
}
重新打包工程,第一次安装后分享会跳转2次,后面分享就只会跳转一次了。
如果还是不行,请移步到微信SDK 接入说明
参考地址:微信分享,一直跳转二次
网友评论