客户有这样一个需求,他们分别在丁老师这里开发了微信小程序和APP,最近想把小程序的流量和业务,往APP上转移,也就是准备实现品牌的私域流量,目前是使用图文+二维码的方式,引导用户去应用市场下载,现在是想实现在打开小程序的时候,自动唤起已安装的APP,问丁老师这种可以实现吗?丁老师将对这个问题进行解答。
微信小程序可以唤起APP吗?
答案是肯定的,微信小程序可以唤起本地已安装的APP应用。但是受微信的限制,也不是说任何APP都可以被唤醒拉起。具体规则和场景如下:
1.该APP需要在微信的白名单内,一般多为腾讯系应用,如QQ邮箱、微信读书等。
2.该APP唤醒的业务需要符合腾讯规定,如地图导航、支付交易等。
3.还有一些合作APP,如京东、美团、携程等应用。
4.不能随意唤起,必须是微信已经审核通过的业务场景。
5.必须申请微信外部启动APP权限。
6.用户手机必须已安装目标APP。
7.重点,普通小程序没有唤起APP的权限,并且很难申请通过。
如何实现小程序唤起APP?
在满足上述条件的前提下,分别需要对小程序和APP端进行适配,以实现小程序唤起APP。
小程序端:
通过微信小程序的button组件,绑定open-type为launchApp即可,并且可以通过app-parameter,向唤起的APP传递参数。具体代码如下:
<button open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
Page({
launchAppError (e) {
console.log(e.detail.errMsg)
}
})APP端:
目标APP需要接入OpenSDK,Android系统的App需要处理ShowMessageFromWX.req的微信回调,苹果iOS应用则需要将微信的appId添加到App工程里,所属的plist文件中URL types字段。
Android APP示例代码:
#WXEntryActivity中
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
//对应小程序组件<button open-type="launchApp">中的app-parameter属性
String extraData =launchMiniProResp.extMsg;
}
}苹果iOS应用示例代码:
-(void)onResp:(BaseResp *)resp
{
if ([resp isKindOfClass:[WXLaunchMiniProgramResp class]])
{
//对应小程序组件<button open-type="launchApp">中的app-parameter属性
NSString *string = resp.extMsg;
}
}不能实现小程序唤起APP的方式
1.通过JS唤起APP,无法实现,小程序内部限制,该方法无效。
2.通过webview/H5的链接,调用scheme拉起APP,该方法无效,小程序已限制webview的url跳转。
3.通过下载APK安装,该方法无效,微信内不允许直接下载APK。
全文总结
要想实现小程序唤起APP,从技术原则上来说是可以的,但是因为微信结合安全风险、使用体验等因素的考虑,微信生态内对拉起APP的行为限制较多,需要通过微信的层层审核。对大部分APP来说,一般情况下是不好实现的。如果目标APP用户群体较多、体量比较大,可以和微信进行商户沟通以便开放此功能。
以上就是丁老师对微信小程序能否唤起APP这个问题的介绍,如果你也有这个需求,或是有不同的意见以及建议,可以联系丁老师。同时,丁老师软件团队专注微信小程序开发,技术过硬、人品可靠,正规公司、签署合同,如果你也想开发微信小程序,欢迎联系丁老师进行交流和咨询。
在使用docker命令的时候,提示Error response from daemon: Get "https://registry-1.docker.io/v2/":原因该url国内网络无法访问,这个时候就需要切换...
如何实现PDF在网页中浏览,并且不允许被下载呢?有两种实现方法:方法一:直接使用Iframe,Iframe中嵌套pdf地址,这样在网页中该PDF只能被浏览,没有下载通道。<iframe frameborder="0&qu...
Podman介绍Podman全称Pod Manager(珀德,迈那吉儿),灵感来自Kubernetes(库博内茨)的Pod概念,是由RedHat主导开发的容器运行管理工具,用来替代Docker,功能上和Docker基本一致,可直接替代D...
Google字体是谷歌官方的在线字体库,有包含中英文在内的几千种字体,全部免费,无版权、可商用!并且和其他字体网站不一样,不需要下载到本地,只需要复制一行代码即可使用!支持哪些应用?网站、小程序、APP、公众号、电商详情页、海报、PPT...
这几年AI技术的发展已经达到新的高度,从提高个人生产力到企业操作效率的各个方面,AI都扮演着不可或缺的角色。无论是进行语言交流、内容创作、或是任务管理,都有相应的AI工具可以帮助我们更加轻松地完成工作。以下是丁老师觉得不错的AI工具推荐,希...
挺不错的浏览器,强加入了edge image viewer图片浏览器,感觉不是那么好,对于开发者来说,更想要原生的东西。包括微信网页版里的表情图片,用edge image viewer打开的话,无法保存为gif格式,即使保存了,也只是第一帧...
普通账号个人认证号企业认证号蓝色认证标识薯条推广聚光平台效果广告普通应商业合作以KOL/KOC身份和品牌合作以品牌方身份发起起合作开设店铺个人店铺或个体户(不支持港澳台公司申请)旗舰店店或专卖店(支持港澳台公司申请)主动私信每天10位陌生用...
今天有同学在群里提问,在使用photoshop编辑文字时,经常会弹出一个文字选择的面板如图:这时文字也无法输入,也无法取消和关闭,很是烦人,怎么取消这个功能呢?经过丁老师研究,方法很简单:1.打开photoshop菜单-编辑2.选择首选项-...