admin管理员组

文章数量:1531792

需要H5唤醒App看这篇文章:H5唤醒App

需求:公司的app跳转公司的另一个app

注意看注释!!!
注意看注释!!!
注意看注释!!!

如何实现呢,首先你要理解一下的东西

Android平台设置UrlSchemes,实现被第三方应用调用
iOS平台设置UrlSchemes,实现被第三方应用调用
iOS平台设置应用访问白名单(LSApplicationQueriesSchemes)
判断第三方程序是否已存在
调用第三方程序
调用第三方程序打开指定的URL
plus.os.name,返回你手机是安卓还是苹果

问题:

判断第三方程序是否存在的isApplicationExist,ios系统判断本公司的app是一直不存在的,不知道什么原因,安卓是可以的

逻辑:

1.首先判断是手机是安卓还是ios
2.在判断是你手机有没有这款app
3.有就打开,没有就下载

配置:

下面我会说,A款app,B款app,便于分开,实现A款app跳转B款app

  1. 首先配置B款app的Schemes,分为iosAndroid配置
    路径:manifest.json—源码视图—app-plus—distribute(下面有ios,Android)
    (1) Android

    (2)ios


2. 配置A款app
路径:manifest.json—源码视图—app-plus—distribute(下面有ios,Android)
我们只要配置A款app的ios白名单就行,白名单是要跳转过去的app的urlschemes

实现

A款app跳转B款app

	if (plus.os.name == "Android") { //安卓
				if (plus.runtime.isApplicationExist({ //查看安卓系统手机有没有下载这款app
						pname: 'com.iss.xxxx',  //B款app云打包的包名
					})) { //安装了app
					plus.runtime.launchApplication({ //打开app
						pname: "com.iss.xxxx",  //B款app云打包的包名
						extra: {
							url: "wswl://com.iss.xxxx" //B款app配置的schemes+云打包的包名
						},
						function(e) {
							console.log("Open system default browser failed: " + e.message);
						}
					})
				}
				else { //未安装app
				 	plus.runtime.openURL('https://a.app.qq/o/simple.jsp?pkgname=xxxx', function(res) { 
				 	//进入后台小哥哥给我的应用宝下载链接,让你们后台给你
				 	//这链接会判断你手机是ios还是Android,Android进入应用宝下载app
				 	//跟下面的是一个链接
				 		console.log(res);
				 	});
				 }
			} else if (plus.os.name == "iOS") { //苹果
			//因为ios查不到B款app在ios系统手机里面,其实下载了,也是检测不到,所以就不检测了
			//直接打开B款app,B款app没有的话,会进入回调报错,我们在回调去打开下载链接
				plus.runtime.launchApplication({
					action: "wswl://"
				}, function(e) {
					 plus.runtime.openURL('https://a.app.qq/o/simple.jsp?pkgname=xxxx', function(res) { 
					 //进入后台小哥哥给我的appStore下载app链接,,让你们后台给你
					 //这链接会判断你手机是ios还是Android,ios进入应用宝下载app
					 //跟上面的是一个链接
					 	console.log(res);
					 });
				});
			}

总结

1.B款app需要:Android配置schemes,ios配置urlschemesurlidentifier(包名)
2.A款app需要:ios配置跳转B款app白名单urlschemewhitelist

本文标签: 跳转uniappapp