客户有这样一个需求,他们分别在丁老师这里开发了微信小程序和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这个问题的介绍,如果你也有这个需求,或是有不同的意见以及建议,可以联系丁老师。同时,丁老师软件团队专注微信小程序开发,技术过硬、人品可靠,正规公司、签署合同,如果你也想开发微信小程序,欢迎联系丁老师进行交流和咨询。
在开发微信小程序时,涉及到获取用户位置的业务部分,需要使用wx.getLocation方法。但是wx.getLocation接口很难申请,基本上申请了都不给通过,主要是因为申请该方法,需要提供相关场景的图片、视频、业务流程说明,并且使用...
今天介绍一下,在开发架构中,经常遇到mongodb,mongo-capture,dbreplay,rabbitmq这些是些什么,能做什么用,由丁老师一个一个解答。其实,这些都属于软件开发项目中,比较主流,且程序开发系统架构经常用到的中间...
K8s,就是Kubernetes(库博内茨),是由Google发明创建的用于自动化部署、扩展和管理容器化的应用程序。很多人一直不太理解k8s到底是做什么的,以及在实际项目运行中的意义和作用到底有多大,今天丁老师就来介绍一下。K8s是做什...
很多客户的微信小程序,上架后没有被搜索到,这是怎么回事呢?微信小程序上架后多久能被搜索到呢?针对这个问题,丁老师今天进行一下解读。首先,微信小程序在上架前,先要保证完成认证和备案,没有认证和备案的小程序,是无法被搜索到的。微信小程序搜索...
普通账号个人认证号企业认证号蓝色认证标识薯条推广聚光平台效果广告普通应商业合作以KOL/KOC身份和品牌合作以品牌方身份发起起合作开设店铺个人店铺或个体户(不支持港澳台公司申请)旗舰店店或专卖店(支持港澳台公司申请)主动私信每天10位陌生用...
国外很多VPS购买后,只有密码,没有登录账号,如何登录呢?我们以one.com为例,购买了VPS后,只能设置密码,但是用root,也无法登录,是怎么回事呢?查了官方文档,原来修改的VPS密码,不是root的,这个VPS默认的账号是admin...
最近要在某单位内网部署项目,使用了lnmp来配置环境,软件安装成功,可安装后不管是打开ip地址还是默认站点,都提示nginx 403 forbidden,这是怎么回事呢?首先,已经出现了nginx 403提示,说明nginx是安装正常的。其...
今天有同学在群里提问,在使用photoshop编辑文字时,经常会弹出一个文字选择的面板如图:这时文字也无法输入,也无法取消和关闭,很是烦人,怎么取消这个功能呢?经过丁老师研究,方法很简单:1.打开photoshop菜单-编辑2.选择首选项-...