uni-app打开第三方APP

打开第三方程序,我们需要使用 runtime 模块 ,

1.调用第三方程序打开指定的URL

plus.runtime.openURL(url , errorCB, identity);

url(String):
    必选 要打开的 URL 地址
    字符串类型,各平台支持的地址类型存在差异,参考平台 URL 支持表。
errorCB(OpenErrorCallback):
    可选 打开URL失败的回调,打开指定URL地址失败时的回调,并返回失败信息
identity(String):
    可选 指定打开URL地址的程序名称
    在IOS平台此参数被忽略,在Android平台为程序包名,如果指定的包名不存在则打开URL失败
<template>
    <view>
        <button type="primary" @click="open(0)">第三方程序打开指定URL</button>
    </view>
</template>


<script>
export default {
	data() {
		return {
			url: 'https://uniapp.dcloud.io/'
		};
	},
	onLoad(op) {},
	methods: {
		open(types) {
			plus.runtime.openURL(this.url, function(res) {
				console.log(res);
			});
		}
	}
};
</script>

2.调用第三方程序

plus.runtime.launchApplication( appInf, errorCB );

appInf( ApplicationInf): 
    必选 要启动第三方程序的描述信息
errorCB( LaunchErrorCallback ): 
    必选 启动第三方程序操作失败的回调函数 启动第三方程序失败时回调,并返回失败信息。
<template>
    <view>
        <button type="primary" @click="launchApp">打开微信</button>
    </view>
</template>


<script>
export default {
	data() {
		return {
			url: 'https://uniapp.dcloud.io/'
		};
	},
	onLoad(op) {},
	methods: {
		launchApp() {
			let _this = this;
			// 判断平台
			if (plus.os.name == 'Android') {
				plus.runtime.launchApplication(
					{
						pname: 'com.tencent.mm'
					},
					function(e) {
						console.log('Open system default browser failed: ' + e.message);
					}
				);
			} else if (plus.os.name == 'iOS') {
				plus.runtime.launchApplication({ action: 'weixin://' }, function(e) {
					console.log('Open system default browser failed: ' + e.message);
				});
			}		
		}
	}
};
</script>

3.常用平台URL Scheme

[
	{
		name: '支付宝',
		pname: 'com.eg.android.AlipayGphone',
		scheme: 'alipay://'
	},
	{
		name: '淘宝',
		pname: 'com.taobao.taobao',
		scheme: 'taobao://'
	},
	{
		name: 'QQ',
		pname: 'com.tencent.mobileqq',
		scheme: 'mqq://'
	},
	{
		name: '微信',
		pname: 'com.tencent.mm',
		scheme: 'weixin://'
	},
	{
		name: '京东',
		pname: 'com.jingdong.app.mall',
		scheme: 'openApp.jdMobile://'
	},
	{
		name: '新浪微博',
		pname: 'com.sina.weibo',
		scheme: 'sinaweibo://'
	},
	{
		name: '优酷',
		pname: 'com.youku.phone',
		scheme: 'youku://'
	}
]

好的,了解了你的问题,我来给你解答。 如果你想要通过 HBuilderX 中的 `plus.runtime.launchApplication` 方法来跳转到企业微信 app 并进行 OAuth2.0 授权登录,可以按照以下步骤进行: 1. 确认企业微信 app 的包名和启动页面,一般情况下为: - 包名:`com.tencent.wework` - 启动页面:`com.tencent.wework.launch.LaunchSplashActivity` 2. 在 HBuilderX 中调用 `plus.runtime.launchApplication` 方法,传入企业微信 app 的包名和启动页面,如下所示: ```javascript plus.runtime.launchApplication({ pname: 'com.tencent.wework', action: 'android.intent.action.VIEW', uri: 'wework://app/oauth2/authorize?appid=YOUR_APP_ID&agentid=YOUR_AGENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect' }, function(e) { console.log('跳转企业微信 app 失败:' + e.message); }); ``` 其中,`YOUR_APP_ID`、`YOUR_AGENT_ID` 和 `YOUR_REDIRECT_URI` 分别是你在企业微信开放平台上创建应用时得到的对应参数,具体可以参考企业微信官方文档进行设置。 3. 此时,企业微信 app 将会被启动,并跳转到 OAuth2.0 授权登录页面。 4. 用户在企业微信 app 中完成授权登录后,将会跳转回你设置的 `YOUR_REDIRECT_URI` 页面,并带上授权 code 参数。 5. 在你的 `YOUR_REDIRECT_URI` 页面中,可以通过以下代码来获取授权 code,并根据需要进行后续操作: ```javascript var code = getUrlParameter('code'); function getUrlParameter(name) { name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } ``` 注意,以上代码中的 `getUrlParameter` 方法用于获取 URL 参数,你需要根据实际情况进行修改。 希望以上信息能够帮到你,如有疑问请随时追问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值