美文网首页
iOS 集成微信WechatOpenSDK1.8.7实现APP拉

iOS 集成微信WechatOpenSDK1.8.7实现APP拉

作者: Sinda_Liu | 来源:发表于2020-11-27 15:56 被阅读0次

    一、场景:在APP中跳转微信打开小程序进行支付操作;

    由于自己在开发过程中遇到太多疑惑了,走了很多弯路,特别是在配置universal links,如今也算是开发完成了,重点总结几点配置universal links相关的给大伙参考。不喜勿喷。

    二、具体步骤:

    1、 微信官方文档地址:

    iOS集成文档
    另附微信开发社区的交流专区,开发过程中遇到的问题可以在这里面搜索,有些官方团队也会给建议的。

    2、集成步骤:

    2.1 前提得有一个微信开发平台的账号,还要申请一个小程序。本人是iOS开发,这些都不赘述了。
    2.2 配置universal links:
    1) 去苹果开发者平台,把Associated Domains开关打开;
    登录->Account->Certificates, Identifiers & Profiles->Identifiers->找到APP对应的bundleID->Capabilities-勾选Associated Domains->Save.
    ps:在当前页面中会出现teamID、bundleID,请先存下来,后面有用!

    打开Associated Domains
    2) 在微信平台申请App Id 时,需要绑定APP bundleID等信息,此外需要配置universal links.这个路径很关键。后期在APP里面向微信注册的代码中会涉及到universal Links参数。和你在微信后台管理中配置的填写一致即可。假设我的APP在后台管理平台上设置的universal Links参数是https://www.baidu.com/ios/(特别注意一点的是这个通用链接必须是HTTPS的)
    微信后台管理设置
    3) 向我们的服务器上传以apple-app-site-association命名的json文件。后缀名.json要去掉。具体json内容如下:

    {
    "applinks": {
    "apps": [],
    "details": [
    {
    "appID": "AAA.BBB",//命名方式:teamID.BundleID
    "paths": [ "/ios/"]//在b中配置的universal Links去掉域名,只要后面的路径/.例如我配置的universal Links是https://www.baidu.com/ios/,那么这里的paths就可以写成:/iOS/*
    }
    ]
    }
    }

    这个文件就应该放在域名对应的根目录下,或者是在根目录下创建一个well-known的文件夹下。(网上有说iOS14要求是放在well-known的文件夹下)。例如universal Links是https://www.baidu.com/ios/,我的apple-app-site-association文件就应该上传到https://www.baidu.com服务器的根目录即可。
    4) 回到我们自己的APP:

                a. 配置Associated Domains
    

    Targets->signing&capabilities->点击左上角的"+Capability",添加Associated Domains->配置Domains.


    配置Domains

    Domains的格式为:applinks:域名(去掉https:)
    例如universal Links是https://www.baidu.com/ios/,这里就可以写applinks:www.baidu.com

            b. 配置URL Types
    

    Targets->Info->URL Types添加微信申请到的APPID


    添加URL Scheme
            c. info.plist文件中添加一个数组LSApplicationQueriesSchemes,把微信添加进去
    
    info.plist新增LSApplicationQueriesSchemes数组
            d. 通过pod安装SDK,具体可参照微信开发文档
                  pod 'WechatOpenSDK'
    
            e. 向微信注册id
    

    AppDelegate.m->导入头文件#import "WXApi.h"->在didFinishLaunchingWithOptions方法中注册

    AppDelegate.m注册信息

    WECHAT_APP_ID:就是在微信平台申请到的APP ID。
    universalLink:对应的就是在微信平台申请中填写的universal Links。

    截图中在注册代码前后的两段代码是微信SDK1.8.7自带的自捡函数调用,方便开发过程中定位问题的。特别注意的是这个只适合调试过程中使用。上线一定要去掉。因为我发现,如果有这段自检代码会在你APP启动的时候就会跳转到微信。而且在正常跳转中也会出现多次跳转的现象,所以慎用!!!

            f. 重写 AppDelegate 的 handleOpenURL , openURL ,continueUserActivity方法
    
    重写跳转方法
            g. app拉起小程序的步骤参考微信API:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Launching_a_Mini_Program/iOS_Development_example.html
    

    三、测试你的通用链接是否有效:

     1、 一种方式是在备忘录里面输入你微信平台配置的universal Links,点击这个链接会跳转到我们自己的APP,说明链接有效。
    

    例如:https://www.baidu.com/ios/
    (我这个链接只是为了举例。不用真的拿来测试。因为用的是百度的域名,测试肯定是不通的。你们只需要拿你们自己的链接测试即可)

     2、 打开手机浏览器Safari,输入微信平台配置的universal Links。看到最上面会显示出你的APP。并带有一个打开按钮,说明链接有效。
    
    在safari中打开链接

    相关文章

      网友评论

          本文标题:iOS 集成微信WechatOpenSDK1.8.7实现APP拉

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