首页 > 原创文章 > 软件开发 > 查看文章

APP拉起微信小程序的方法及注意事项

所属分类:软件开发 来源: 丁老师原创 更新时间:2026-11-06 08:59 浏览: 50 IP属地: 深圳

随着微信用户群体的广泛和功能的越发强大,目前各APP都在围绕微信生态做服务衍生,特别是涉及支付、分享以及与微信的交互,APP调用拉起微信小程序是很多APP都要开发和集成的功能。那么在开发APP时如何拉起微信小程序,以及相关的实现流程、注意事项有哪些?今天丁老师一文教给你。

小程序APP开发2

APP如何拉起微信小程序
APP调用拉起微信小程序,从终端上来说,区分为Android APP和iOS应用,并且根据开发方式的不同,还区分为原生开发和Uniapp开发,接下来丁老师将根据终端的不同以及开发方式的不同,逐一告诉你具体方法。

▪ Android原生开发
1.需要引用微信的SDK,注册WXAPI,具体代码:

//移动应用的appid(微信开放平台的应用appid,不是小程序的)
IWXAPI api=WXAPIFactory.createWXAPI(context,"微信开放平台appid",true);
api.registerApp("微信开放平台appid");

WXLaunchMiniProgram.Req req=new WXLaunchMiniProgram.Req();

//小程序的原始ID
req.userName="gh_xxxx"; 

//页面路径,后边是参数
req.path = "pages/index/index?a=1"; 

//小程序0正式版 1开发版 2体验版
req.miniprogramType=WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;
api.sendReq(req);

2.回调时,需要在WXEntryActivity接收WXLaunchMiniProgram.Resp,拿到从小程序返回App的数据。

▪ iOS原生开发
1.在项目中配置LSApplicationQueriesSchemes,添加weixin、weixinULAPI。
2.在苹果域名配置Associated Domains,填入ulink域名。
3.在微信开放平台,该应用填写Universal Link。
4.同样在WXApiDelegate接收返回回调。

实现代码:

WXLaunchMiniProgramReq *req = [WXLaunchMiniProgramReq object];
req.userName = @"gh_xxxx";
req.path = @"pages/index/index?a=1";
req.miniProgramType = WXMiniProgramTypeRelease;
[WXApi sendReq:req];

▪ Uniapp开发APP
Uniapp的APP-PLUS中,有一个函数为plus.share,封装了微信的SDK,可以直接在JS中调用,不需要写原生代码。

//#ifdef APP-PLUS
	plus.share.getServices(res=>{
	    const weixin = res.find(s=>s.id==='weixin');
	    if(weixin){
		weixin.launchMiniProgram({
		    //小程序原始ID
		    id:"gh_xxxx", 
		    path:"pages/index/index?a=1",
		    //0小程序正式版,1开发版,2体验版
		    type:0 
		},(succ)=>{
			console.log("拉起成功",succ);
		},(err)=>{
			console.error("拉起失败",err);
		});
	    }
	});
//#endif

注意:使用plus.share功能,需要在Uniapp的manifest.json中,APP模块配置勾选微信分享,并填入微信开放平台的appid,如图:

image.png

另外,如果是Uniapp开发的iOS应用,则必须要填写Universal Link,没有这个APP拉不起来小程序。

实现流程
1.不管是那种方式,都需要先在微信开放平台注册,添加该应用,等审核通过后才可以使用APP拉起小程序的功能,不然会提示Bad_param参数错误。
2.拿到目标小程序的原始ID,是gh_开头,如gh_12345,注意这里是原始ID,不是目标小程序的appid。
3.如果是Android应用,则需要准备应用包名、正式打包证书SHA1。
4.如果是iOS应用,则需要准备undle ID,配置Universal Link的域名。
5.提交审核,等待微信审核通过。
6.编写程序拉起小程序的代码。
7.打包APP,真机测试。

注意事项
1.一个是微信开放平台的应用ID,wx开头,另一个是要拉起小程序的原始ID,gh_开头,两个ID不要搞混了。
2.拉起小程序时需要填写type状态,0为正式版,1为体验版,2为开发板,注意测试和打包正式版时区分。
3.APP拉起微信小程序属于微信移动应用接口,不需要单独申请权限,但是必须在微信开放平台添加应用,且必须审核通过,否则无法实现拉起。
4.在微信开放平台添加的应用,注意填写的APK包名或Bundle ID是否正确,大小写要一致,不能多空格、不能大小写写错。
5.HBuilder调试基座是用的DCloud的统一签名,和我们自己开发APP的keystore的SHA1值不一样,基座基本无法拉起。
6.Uniapp的manifest配置需要配置模块(微信分享)。
7.APP的keystore证书要确保一致,一旦上架上,后续如果再打包APK,必须一直用同一份签名keystore文件,不要再换证书了,换证书相当于签名发生变化,不能再拉起小程序。
8.plus.share.getServices是异步方法,千万不要写同步逻辑,要先拿到微信实例,再调用launchMiniProgram。如果拿不到微信对象,则会引起微信SDK初始化失败,无法拉起小程序。
9.集成统一的微信SDK,不要同时集成其他版本多个微信SDK,避免SDK冲突。
10.拉起微信小程序时,页面的参数path里,像url一样正常根据&符号写参数就可以了,传递的参数不需要urlencode。

上架合规注意事项:
1.APP拉起微信小程序,只是跳转,并不能绕过微信授权,且不要私自获取微信用户信息。
2.隐私政策,如果涉及微信登录,在APP隐私协议里需要说明调用微信SDK。
3.安卓应用商店审核规则,一般允许正常的跳转小程序,但是不要做诱导性跳转。
4.频次限制,在微信开放平台,未上架的应用每日有调用限额(好像是100次/天),正式上架后无该限制。

相关服务


下一篇:没有了

相关文章

关于使用Zipkin与RabbitMQ的追踪...

有同学提问,使用的Spring Boot框架,有两个微服务,为了实现追踪,使用了<artifactId spring-cloud-sleuth-zipkin</artifactId 以及zipkin。A服务是生产者,通过Ra...

软件开发如何调用AI大模型的接口?注意事项有...

现在AI的快速发展如火如荼,各AI大模型日趋成熟,在软件定制开发的过程中,越来越多的功能需求需要接入AI实现AI应用。那么如何接入AI接口,实现AI功能的调用,以及在接入AI接口,实现AI功能的过程中,有哪些注意事项呢?今天丁老师就这个...

Java如何在请求中加入参数?

在Java中,提交请求时加入参数有两种方法:一、把参数直接写在url中,如:如请求url是https://www.aaa.com,参数是name=kevin,gender=2,那么可以直接把请求url写成https://www.aaa....

PDF和图片怎么添加水印

pdf添加水印,可以使用专业的pdf工具,如Adobe Acrobat、福昕PDF阅读器等,支持文字和图片形式的添加水印,支持透明度设置、水印位置设置等。图片添加水印,可以使用photoshop软件,但是photoshop太大了,而且使...

推荐文章

微信小程序提示“手机号快速验证组件”资源包用...

微信小程序自2023年8月起,开始对《手机号快速验证组件》进行收费,每个小程序有1000次的免费额度,超过额度就要收费。说白了就是以后在使用微信小程序获取用户手机(用户主动授权)的时候,需要按次数收费了。那么,在当前的经济状况下,如何做到轻...

低成本的政企软件系统维护服务

开源节流,控制生产成本,限制开销,是每个企业和单位都要采取的成本控制和管理措施。其中,人力成本是企业在经营中支出占比较大的一块。以IT信息化部门为例,一个负责企业软件系统运维的IT部门,至少需要配置3个员工,每个员工按照IT工程师3-5年工...

Javascript复制对象改变原值的解决办...

在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={ "a":1, "b":2 } let new=old; new['c']=3;...

BT宝塔升级方法

由老版本7.2自动升级时,会出现很多问题,建议在终端手动升级。升级命令:curl http://download.bt.cn/install/update_panel.sh|bash