uniapp、vue(app)唤醒第三方应用并传递参数

一、市场部分常见app包名

二、判断是否安装了某款app并唤醒(以微信为例)

        注意:Android平台需要通过设置appInf的pname属性(包名)进行查询。 iOS平台需要通过设置appInf的action属性(Scheme)进行查询,在iOS9以后需要添加白名单才可查询,在manifest.json文件plus->distribute->apple->urlschemewhitelist节点下添加(如urlschemewhitelist:[“weixin”])。

        这里使用HTML5的api: plus.runtime.isApplicationExist.(appInf)

// #ifdef APP-PLUS

// #endif
//条件编译:否则浏览器会报错:plus is not defined
//请使用真机查看效果

// #ifdef APP-PLUS
	const isApp = plus.runtime.isApplicationExist({
		pname: 'com.tencent.mm'
	});
	if (isApp) {
	    //已安装
		plus.runtime.launchApplication({
			pname: "com.tencent.mm",
			action: "weixin://",
		}, (e) => {
			console.log("e", e)
		})
	} else {
		// 没有安装
		console.log('没有安装', '999999999');
	}
// #endif

三、传递参数(以唤醒微信为例)

(示例):唤醒并且传递参数还是使用 plus.runtime.launchApplication(appInf,err) 函数 其中appInf 对象的extra key 为传递到其他引用参数,传递必须为对象

// #ifdef APP-PLUS

// #endif
//条件编译:否则浏览器会报错:plus is not defined
//请使用真机查看效果

// #ifdef APP-PLUS
	const isApp = plus.runtime.isApplicationExist({
		pname: 'com.tencent.mm'
	});
    let senddata = {"uid":110,"username":"zhangsan","nickname":"张三","email":"917466880@qq.com"}
	if (isApp) {
	    //已安装
		plus.runtime.launchApplication({
			pname: "com.tencent.mm",
			action: "weixin://",
            extra: senddata //传递的参数
		}, (e) => {
             uni.showToast({
				title: "打开失败",
				icon: "none"
			})
			console.log("e", e)
		})
	} else {
		// 没有安装
		console.log('没有安装', '999999999');
	}
// #endif

四、接收其他APP传递过来的参数

        1、Android - 2.2+ (支持) :

                如果是第三方APP调用,则把传递过来的参数组合成JSON格式字符串,如“{“name”:“admin”,“password”:“123456”}”; 如果是通过URL Scheme调用则将协议头(前缀)和参数组合成字符串,如“streamapp://name=XiaoMing&password=123456”。

        2、iOS - 4.3+ (支持) :
把第三方传递过来的参数组合成字符串,如“name=admin&password=123456”,建议第三方程序传递JSON格式字符串; 注:由于iOS平台原生传递参数与URL Scheme一致,通过URL Scheme启动应用时也没有协议头数据(前缀)。

//第三方程序调用时传递给程序的参数 plus.runtime.arguments
JSON.stringify(plus.runtime.arguments)

 五、温馨提示:

使用plus 开始的方法需要条件编译否则会在h5端出错,
如果在uniapp 里面使用不需要注册对应的事件
在vue 中使用也必须在真机里面使用,所有的plus开始的函数必须要通过window.plus.xxx

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巷子里的狼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值