100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > IOS移动应用跳转微信小程序

IOS移动应用跳转微信小程序

时间:2023-04-24 18:00:02

相关推荐

IOS移动应用跳转微信小程序

有项目使用到了IOS移动应用跳转微信小程序支付的 因为对接合作的银行费率低没有移动应用SDK于H5支付SDK 无奈只能使用此方式 官网文档写的很简洁明了

第一步登录苹果开发者中心配置

1.登录苹果开发者中心 打开 Associated Domains

2.在ios项目里面配置 applinks,applinks:你的域名,比如 applinks: ,就是域前面是固定格式(不要https://,不要加路径path)

第二步 服务器配置《必须配置》

1)创建一个json文件,名称必须为 apple-app-site-association,⚠️该文件不可带 .json 的后缀名

apple-app-site-association 文件必须放在https服务器的根目录下,例: 这个路径下 ⚠️一定是根目录,也就是说该文件必须是一级目录,供下载使用

apple-app-site-association 文件格式:

{"applinks": {"apps": [],"details": [{"appID": "teamID.bundleId","paths": ["*"]}]}}

appID 格式为 teamID.bundleId形式,比如说我的teamID是12324,<查看tameID如图>bundleId是com.test.app

那么我的appID就是:.test.app。

paths:使用*配置,则整个网站都可以使用

他是用来告诉safari(APP)那些是Universal Links。例如: 是你的域名,path配置为["/test/*"],那么你在手机里safari打开/test/xxx就会有app打开提示 试验图就不弄了 自行验证

验证apple-app-site-association文件 https://search./appsearch-validation-tool/ 显示如图4 则成功了有问题自行查看苹果官方文档App Search Programming Guide: Support Universal Links

第三步 集成微信sdk

集成前先简单的介绍下

Universal Links

要对接最新的微信sdk,你必须要了解一下Universal Links是什么,因为最新sdk根据Universal Links来判断来源app是否可信。

IOS主流跳转方案有两种:

1:Scheme

2:Universal Links

Scheme的协议是由开发者完全自定义,同时访问失败没有任何内容可以展现,所以IOS9就引入Universal Links。Universal Links 是通过域名下apple-app-site-association来确定app,因为域名又必须是https又不会重复,还能当作地址来访问网页,解决了上述两个问题。

1.官方sdk下载集成文档介绍https://developers./doc/oplatform/Mobile_App/Launching_a_Mini_Program/iOS_Development_example.html

2.以上步骤操作集成完过后下面我们开始接入sdk 导入头文件 WXApi.h

调用微信api注册我们的appid 与universalLink

universalLink 你的域名比如百度 如下

[WXApi registerApp:@"微信appid 不是小程序id" universalLink:@"/"];

在AppDelegate实现实现以下方法 <如果项目里面有集成聚合sdk,比如友盟分享,可以用聚合的不用实现以下 个别方法了>

- (BOOL)application:(UIApplication *)appopenURL:(NSURL *)urloptions:(NSDictionary<NSString *,id> *)options {return [WXApi handleOpenURL:url delegate:self];}- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {return [WXApi handleOpenURL:url delegate:self];}- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {return [WXApi handleOpenURL:url delegate:self];}//对应我们配置的 Universal Links- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler{return [WXApi handleOpenUniversalLink:userActivity delegate:self];}

接下来开始测试

下面遇到一个坑,小程序是前段开发的就问他小程序的userName是多少,前段妹子直接报了小程序的名字,我再三确认他说小程序的userName就是小程序的名字。好吧就开始测试了。微信登录分享都正常未读小程序跳转不过去。

最好查阅资料才发现小程序的userName就是小程序的初始id 登录小程序开放中心找到点击设置

查看方法如图

WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];launchMiniProgramReq.userName = @"小程序的初始id";launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease;return [WXApi sendReq:launchMiniProgramReq completion:nil];

当遇到报错weixinULAPI://" -error:"This app is not allowed to query for scheme weixinulapi...时漏写白名单了噢

如需配置微信sdk相关

其中links地址要带上https://(看微信提示文字即可)

配置Url Type

填入微信开放平台对应的appid即可

如果遇到集成后每次跳转小程序都跳转两次 自检不通过 可能是apple-app-site-association服务器上没配置对 官方要求在服务器跟目录建.ewll-know目录但是这个目录是Linux的隐藏文件夹访问不到,最终需要的都是配置APPID的json串 所以解决方案可以为配置Nginx代理 将配置好的json传代理为HTTPS通用链接

// 123.baidu.wqeq.qweq 为需要修改的APPid path可以为当前的*location /apple-app-site-association {charset UTF-8; default_type text/html; return 200 '{\"applinks\": {\"apps\": [],\"details\": [{\"appID\": \"123.baidu.wqeq.qweq\",\"paths\": [\"*\"]}]}}';}

location /apple-app-site-association {charset UTF-8;default_type text/html;alias E:/XXX/XXX/apple-app-site-association;}

如果遇到集成后跳转小程序后在回跳APP流程中止 说明没有实现全部微信的方法请查看官方文档

其余的自行验证

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。