iOS 集成微信WechatOpenSDK1.8.7实现APP拉起小程序功能

一、场景:在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拉起小程序功能)