2021-05-12

微信分享跳转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*)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> * _Nullable))restorationHandler
{
    if(![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]){
    // 其他SDK的回调
    }
    return YES;
}

重新打包工程,第一次安装后分享会跳转2次,后面分享就只会跳转一次了。

如果还是不行,请移步到微信SDK 接入说明

参考地址:微信分享,一直跳转二次

Universal Link校验不通过/接入新SDK,跳到微信后再回跳App,流程就中止?

友盟U-Share SDK接入集成

友盟U-Link 接入集成

你可能感兴趣的:(2021-05-12)