| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 | 
							- <template>
 
- 	<view>
 
- 		<page-head title="通过scheme打开三方app示例"></page-head>
 
- 		<button class="button" @click="openBrowser('https://uniapp.dcloud.io/h5')">使用浏览器打开指定URL</button>
 
- 		<button class="button" @click="openMarket()">使用应用商店打开指定App</button>
 
- 		<button class="button" @click="openMarket('com.tencent.android.qqdownloader')">强制使用应用宝打开指定App</button>
 
- 		<button class="button" @click="openTaobao('taobao://s.taobao.com/search?q=uni-app')">打开淘宝搜索页面</button>
 
- 		<button class="button" @click="openMap()">打开地图并指定地点</button>
 
- 		<view class="uni-divider">
 
- 			<view class="uni-divider__content">打开QQ</view>
 
- 			<view class="uni-divider__line"></view>
 
- 		</view>
 
- 		<view class="uni-padding-wrap">
 
- 			<form @submit="openQQ">
 
- 				<view>
 
- 					<view class="uni-title">请输入聊天对象QQ号:</view>
 
- 					<view class="uni-list">
 
- 						<view class="uni-list-cell">
 
- 							<input class="uni-input" name="qqNum" type="number"/>
 
- 						</view>
 
- 					</view>
 
- 				</view>
 
- 				<view>
 
- 					<view class="uni-title">请选择QQ号类型:</view>
 
- 					<radio-group class="uni-flex" name="qqNumType">
 
- 						<label>
 
- 							<radio value="wpa" checked=""/>普通QQ号</label>
 
- 						<label>
 
- 							<radio value="crm" />营销QQ号(无需加好友直接聊天)</label>
 
- 					</radio-group>
 
- 				</view>
 
- 				<view class="uni-btn-v uni-common-mt">
 
- 					<button class="button" formType="submit">打开qq并到指定聊天界面</button>
 
- 				</view>
 
- 			</form>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script>
 
- export default {
 
- 	data() {
 
- 		return {
 
- 			
 
- 		};
 
- 	},
 
- 	methods: {
 
- 		openBrowser(url){
 
- 			plus.runtime.openURL(url)
 
- 		},
 
- 		openMarket(marketPackageName) {
 
- 			var appurl;
 
- 			if (plus.os.name=="Android") {
 
- 				appurl = "market://details?id=io.dcloud.hellouniapp";//可能部分应用商店没有收录
 
- 			}
 
- 			else{
 
- 				appurl = "itms-apps://itunes.apple.com/cn/app/hello-uni-app/id1417078253";
 
- 			}
 
- 			if (typeof(marketPackageName)=="undefined") {
 
- 				plus.runtime.openURL(appurl, function(res) {
 
- 					console.log(res);
 
- 				});
 
- 			} else{//强制指定某个Android应用市场的包名,通过这个包名启动指定app
 
- 				if (plus.os.name=="Android") {
 
- 					plus.runtime.openURL(appurl, function(res) {
 
- 						plus.nativeUI.alert("本机没有安装应用宝");
 
- 					},marketPackageName);
 
- 				} else{
 
- 					plus.nativeUI.alert("仅Android手机才支持应用宝");
 
- 				}
 
- 			}
 
- 		},
 
- 		openTaobao(url){
 
- 			plus.runtime.openURL(url, function(res) {
 
- 				uni.showModal({
 
- 					content:"本机未检测到淘宝客户端,是否打开浏览器访问淘宝?",
 
- 					success:function(res){
 
- 						if (res.confirm) {
 
- 							plus.runtime.openURL("https://s.taobao.com/search?q=uni-app")
 
- 						}
 
- 					}
 
- 				})
 
- 			});
 
- 		},
 
- 		openMap(){
 
- 			var url = "";
 
- 			if (plus.os.name=="Android") {
 
- 				var hasBaiduMap = plus.runtime.isApplicationExist({pname:'com.baidu.BaiduMap',action:'baidumap://'});
 
- 				var hasAmap = plus.runtime.isApplicationExist({pname:'com.autonavi.minimap',action:'androidamap://'});
 
- 				var urlBaiduMap = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&src=Hello%20uni-app";
 
- 				var urlAmap = "androidamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0"
 
- 				if (hasAmap && hasBaiduMap) {
 
- 					plus.nativeUI.actionSheet({title:"选择地图应用",cancel:"取消",buttons:[{title:"百度地图"},{title:"高德地图"}]}, function(e){
 
- 						switch (e.index){
 
- 							case 1:
 
- 								plus.runtime.openURL(urlBaiduMap);
 
- 								break;
 
- 							case 2:
 
- 								plus.runtime.openURL(urlAmap);
 
- 								break;
 
- 						}
 
- 					})
 
- 				}
 
- 				else if (hasAmap) {
 
- 					plus.runtime.openURL(urlAmap);
 
- 				}
 
- 				else if (hasBaiduMap) {
 
- 					plus.runtime.openURL(urlBaiduMap);
 
- 				}
 
- 				else{
 
- 					url = "geo:39.96310,116.340698?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82";
 
- 					plus.runtime.openURL(url); //如果是国外应用,应该优先使用这个,会启动google地图。这个接口不能统一坐标系,进入百度地图时会有偏差
 
- 				}
 
- 			} else{
 
- 				// iOS上获取本机是否安装了百度高德地图,需要在manifest里配置,在manifest.json文件app-plus->distribute->apple->urlschemewhitelist节点下添加(如urlschemewhitelist:["iosamap","baidumap"])
 
- 				plus.nativeUI.actionSheet({title:"选择地图应用",cancel:"取消",buttons:[{title:"Apple地图"},{title:"百度地图"},{title:"高德地图"}]}, function(e){
 
- 					console.log("e.index: " + e.index);
 
- 					switch (e.index){
 
- 						case 1:
 
- 							url = "http://maps.apple.com/?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82&ll=39.96310,116.340698&spn=0.008766,0.019441";
 
- 							break;
 
- 						case 2:
 
- 							url = "baidumap://map/marker?location=39.968789,116.347247&title=DCloud&src=Hello%20uni-app";
 
- 							break;
 
- 						case 3:
 
- 							url = "iosamap://viewMap?sourceApplication=Hello%20uni-app&poiname=DCloud&lat=39.9631018208&lon=116.3406135236&dev=0";
 
- 							break;
 
- 						default:
 
- 							break;
 
- 					}
 
- 					if (url!="") {
 
- 						plus.runtime.openURL( url, function( e ) {
 
- 							plus.nativeUI.alert("本机未安装指定的地图应用");
 
- 						});
 
- 					}
 
- 				})
 
- 			}
 
- 		},
 
- 		openQQ: function (e) {
 
- 			// console.log("e.detail.value: " + JSON.stringify(e.detail.value));
 
- 			// 没有校验qq号是否为空或合法数字,如果不是可用的qq号,启动qq后会停留在qq主界面
 
- 			plus.runtime.openURL('mqqwpa://im/chat?chat_type=' + e.detail.value.qqNumType + '&uin=' + e.detail.value.qqNum,function (res) {
 
- 				plus.nativeUI.alert("本机没有安装QQ,无法启动");
 
- 			});
 
- 		}
 
- 	}
 
- };
 
- </script>
 
- <style>
 
- .button {
 
- 	margin: 30rpx;
 
- 	color: #007AFF;
 
- }
 
- </style>
 
 
  |