移动应用拉起小程序是指用户可以通过接入该功能的第三方移动应用(APP)跳转至某一微信小程序的指定页面,完成服务后跳回至原移动应用(APP)。
App和小程序互相跳转:
1)App主动发起小程序卡片分享到微信,微信点击打开小程序,这时的小程序可以打开App。(同行的各位做过分享的应该对这个比较熟悉)
2)App主动发起打开小程序,这时的小程序可以打开App。
目前主要就这两种方式吧,严格来说互相跳转不太欠妥,毕竟App才是主动一方,小程序只能被动返回,类似于分享,App如果不发起分享到微信,微信是不能返回你的App的。总的来说,从 APP 跳转到小程序时,小程序会获得返回此 APP 的权限。
此功能需要前端跟iOS开发工程师一起配合,返回主要前端做处理。 小程序打开 APP 的能力 可以理解为由小程序框架在内部管理的一个状态,为 true 则可以打开 APP,为 false 则不可以打开 APP。
App跳转小程序原理及实现微信官网可查看:App拉起小程序功能
小程序返回App原理及实现微信官网可查看:小程序打开App功能
下面主要讲iOS App跳转小程序准备工作,流程配置吧。
1向微信注册你的应用程序id :请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。
2.搭建开发环境
2.1 通过CocoaPods集成
[1] 在工程的Podfile里面添加以下代码:
pod ‘WechatOpenSDK' ,保存并执行pod install。
注意: 命令行下执行pod search WechatOpenSDK,如显示的WechatOpenSDK版本不是最新的,则先执行pod repo update操作更新本地repo的内容
[2] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。
Xcode设置URL scheme
[3] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin(如下图所示)。
[4] 在你需要使 用微信API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议。
常见问题:
对于之前SDK放在主工程目录下,切换成CocoaPods的形式,执行pod install 之后,出现
* Use the $(inherited) flag, or
* Remove the build settings from the target.
解决方法是 把工程target中的build Setting里面PODS_ROOT的值替换成$(inherited)
Other Linker Flags中 -all_load 替换成$(inherited)
3.实现App跳转小程序
[1] 向微信注册你的id。(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中向微信注册id)。
[2] 重写AppDelegate的handleOpenURL和openURL方法:
[3]App拉起小程序
//测试代码
[WXApi openWXApp];
iOS这里有个很坑的地方,文档中是这样写的
WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];launchMiniProgramReq.userName = userName;//拉起的小程序的username launchMiniProgramReq.path = path;//拉起小程序页面的可带参路径,不填默认拉起小程序首页launchMiniProgramReq.miniProgramType = miniProgramType;//拉起小程序的类型
return [WXApi sendReq:launchMiniProgramReq];
这个userName并没有具体说明是什么参数,但是仔细想想App要跳到指定App一定会有标识,或者说APP是怎么和小程序关联的呢?其实该userName就是小程序的userName,你可以登录微信公众号平台|小程序,然后在设置—>基本设置中查看,里面有个原始id,就是小程序的userName。小程序配置里的原始ID 必须是 gh_................... 形式的。
launchMiniProgramReq.userName = @“gh_xhdfjegew78”;//拉起的小程序的username 其实就是 原始ID。
这样你就将APP和小程序关联起来了。
✨✨另外APP关联小程序收银台指引:
登录微信开放平台之后,可在“管理中心-移动应用-应用详情-关联小程序信息”,
添加“wxce9be1b446012310”(举例子),为通过审核的移动应用关联小程序
还有一个问题:App跳转的小程序如何打开指定的页面呢?
这就要看另一行代码:
wxMiniObject.path = @"pages/index/index";
你需要设置一下小程序的path,这个path的页面就是你点击分享的小程序打开的页面。
[4] 小程序返回App---回调
-(void) onResp:(BaseResp*)resp
获取结果 Resp.extMsg,前端可通过小程序返回App进行传值做业务处理。