微信通用链接

微信通用链接:

1.配置证书时打开associate domain

2.在Xcode设置里Capabilities里添加associate domains填写:applinks:admin.yujiankang.com(不要https://)

3.编写JSON文件

{
"applinks": {
"apps": [],
"details": [
{
"appID": "FN4XLWNR5J.com.rzhysoft.DongnanEyeHospital",
"paths": [ "/app/dnyk/hos/" ]
},
{
"appID": "SCWKUTTN5A.com.RuanZhiHongYi.QuanZhouMaternityHospital",
"paths": [ "/app/qzfxfc/hos/
" ]
},
{
"appID": "X4235N59DD.com.RuanZhiHongYi.MagawHospital",
"paths": [ "/app/mgi/hos/" ]
},
{
"appID": "WN5Z5LM42V.com.rzhysoft.YuJianKangHospital",
"paths": [ "/app/yjk/hos/
" ]
}
]
}
}

多个app可以共用一个JSON文件,paths那里确定唯一路径,写好后给后台放入https服务器的域名根目录下

在浏览器输入https://admin.yujiankang.com/apple-app-site-association 可以直接打开JSON文件(不要去下载)

程序先卸载掉,运行填写好associate domains配置的这个程序

在手机备忘录里输入,https://admin.yujiankang.com/app/yjk/hos保存后变黄,长按是否可以弹出跳转到这个APP

4.pod 'WechatOpenSDK'

5.在 Xcode 中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序 id

6.在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在 “info”标签栏的“LSApplicationQueriesSchemes“添加weixinweixinULAPI

7.#import "WXApi.h" WXApiDelegate

重写 AppDelegate 的 handleOpenURL 和 openURL 方法:

  • (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];

}

重写AppDelegateSceneDelegatecontinueUserActivity方法: 注意:适配了SceneDelegate的App,系统将会回调SceneDelegate的continueUserActivity方法,所以需要重写SceneDelegate的该方法。

AppDelegate:

  • (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray

oring>> * __nullable restorableObjects))restorationHandler {

return [WXApi handleOpenUniversalLink:userActivity delegate:self];

}

SceneDelegate:

  • (void)scene:(UIScene *)scene continueUserActivity:(NSUserActivity *)userActivity {

[WXApi handleOpenUniversalLink:userActivity delegate:self];

}

8.程序要实现和微信终端交互的具体请求与回应,因此需要实现 WXApiDelegate 协议的两个方法:

-(void) onReq:(BaseReq*)reqonReq

是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用 sendRsp 返回。在调用 sendRsp 返回时,会切回到微信终端程序界面。

-(void) onResp:(BaseResp*)resp

如果第三方程序向微信发送了 sendReq 的请求,那么 onResp 会被回调。sendReq 请求调用后,会切到微信终端程序界面。

具体在此两方法中所要完成的内容由你定义,具体可参考微信开发工具包中的 SDK Sample Demo 源码。

[5] 如果你的程序要发消息给微信,那么需要调用 WXApi 的 sendReq 函数:

  • (void)sendReq:(BaseReq *)req completion:(void (^

__nullable)(BOOL success))completion;

9.测试

SDK1.8.7版本,WXApi新增了自检函数checkUniversalLinkReady:,帮助开发者排查SDK接入过程中遇到的问题。

注意事项:

  • 调用自检函数之前必须要先调用registerApp:universalLink接口, 并确认调用成功
  • 自检过程中会有Log产生,可以先调用startLogByLevel函数,根据Log排查问题
  • 会多次回调block
  • 仅用于新接入SDK时调试使用,请勿在正式环境的调用

示例代码:

//在register之前打开log, 后续可以根据log排查问题

[WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString *log) {

NSLog(@"WeChatSDK: %@", log);

}];

//务必在调用自检函数前注册

[WXApi registerApp:APP_ID universalLink:UNIVERSAL_LINK];

//调用自检函数

[WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) {

NSLog(@"%@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);

}];

WXULCheckStep值说明:

1step = WXULCheckStepParams: 参数检查

2step = WXULCheckStepSystemVersion: 当前系统版本检查

3step = WXULCheckStepWechatVersion: 微信客户端版本检查

4step = WXULCheckStepSDKInnerOperation: 微信SDK内部操作检查

5step = WXULCheckStepLaunchWechat: App拉起微信检查

6step = WXULCheckStepBackToCurrentApp: 由微信返回当前App检查

7step = WXULCheckStepFinal: 最终检查

会依次回调这7个step,当回调了WXULCheckStepFinal,说明检测通过,SDK接入成功。 任一step回调的result.success为NO, 流程终止,后续不再回调,可以根据result.errorInfo的查看当前步骤错误的原因,根据result.suggestion修复问题.

你可能感兴趣的:(微信通用链接)