美文网首页
2021-05-12

2021-05-12

作者: 背着相机去旅行 | 来源:发表于2021-05-13 11:46 被阅读0次

    微信分享跳转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 接入说明

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

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

    友盟U-Share SDK接入集成

    友盟U-Link 接入集成

    相关文章

      网友评论

          本文标题:2021-05-12

          本文链接:https://www.haomeiwen.com/subject/dyzodltx.html