MUI H5+ APP 分享H5連線 通過scheme喚醒APP

極客蝸牛發表於2019-04-13

新增scheme

在manifest.json檔案中新增IOS及安卓的scheme節點

//IOS
"apple": {
	"appid": "testguangdian.dome",/*iOS必選,蘋果開發網站申請的appid,如io.dcloud.HelloMUI*/
	"mobileprovision": "",/*iOS必選,打包配置檔案*/
	"password": "goncenleo01",/*iOS必選,匯入配置檔案密碼*/
	"p12": "",/*iOS必選,打包配置檔案關聯的個人證書*/
	"devices": "universal",/*iphone,可取值iphone/ipad/universal*/
	"urltypes":[
		{
			"urlidentifier":"testguangdian.dome",
			"urlschemes":[
				"zhsq"
			]
		}
	],
 
	"frameworks": []
},
複製程式碼
//安卓
"google": {
	"packagename": "",/*Android必選,程式包名,如io.dcloud.HelloMUI*/
	"keystore": "",/*Android必選,打包證書檔案*/
	"password": "",/*Android必選,打包證書密碼*/
	"aliasname": "",/*Android必選,打包證書別名*/
	"schemes":[
		"zhsq"
	],
}
複製程式碼

在APP的首頁中 做出響應

document.addEventListener('plusready', function () {
	checkArguments();
}, false);
// 判斷啟動方式
function checkArguments() {
	 alert(plus.runtime.launcher )
	if(plus.runtime.launcher == "default"){
		return
	}else if(plus.runtime.launcher == "scheme"){
			var args = plus.runtime.arguments;
			alert(JSON.stringify(args))
 
			if (args) {
				arr = args.split("?")[1];
			var goodsid = arr.split("=")[1];
				setTimeout(function(){
 
					mui.openWindow("goods_detail.html?goodsid="+goodsid);
					
				},1000)
 
			}
		}
		
	}
	// 處理從後臺恢復
document.addEventListener('newintent', function () {
	console.log("addEventListener: newintent");
	checkArguments();
}, false);
複製程式碼

在H5中喚起

function gp_down(dev){ //下載連結
	if(dev=='android'){
			var ifr = document.createElement('iframe');
			ifr.src = 'https://zhapp.4hl.cn/static/home/js/H53D548C0_0806114840.apk';
			ifr.style.display = 'none';
			document.body.appendChild(ifr);
	}else if(dev=='ios'){
		
	}
}




function submitFn(){
	
//判斷瀏覽器
var u = navigator.userAgent;
if(/MicroMessenger/gi.test(u)) {
	// 引導使用者在瀏覽器中開啟
	alert('請在瀏覽器中開啟');
	return;
}
var d = new Date();
var t0 = d.getTime();
if(u.indexOf('Android') > -1 || u.indexOf('Linux') > -1){
	//Android
			var href = "zhsq://startapp?goodsid=428045"
//						alert("Android-->zhsq")
//						alert(openApp('zhsq://startapp'))
	if(openApp(href)){
		openApp(href);
	}else{
		//由於開啟需要1~2秒,利用這個時間差來處理--開啟app後,返回h5頁面會出現頁面變成app下載頁面,影響使用者體驗
		var delay = setInterval(function(){
				var d = new Date();
				var t1 = d.getTime();
				if( t1-t0<3000 && t1-t0>2000){
//		                    alert('請下載APP');
//		                     window.location.href = " app下載地址 ";
				}
				if(t1-t0>=3000){
					clearInterval(delay);
				}
		},1000);
	}
}else if(u.indexOf('iPhone') > -1){
	//IOS
//            	alert("ios-->zhsq")
//								alert(openApp('zhsq://startapp'))
	if(openApp('zhsq://startapp')){  
		openApp('zhsq://startapp');
	}else{
		var delay = setInterval(function(){
			var d = new Date();
			var t1 = d.getTime();
			if( t1-t0<3000 && t1-t0>2000){
//		                    alert('請下載APP');
//		                    window.location.href = "app下載地址 ";
			}
			if(t1-t0>=3000){
				clearInterval(delay);
			}
		},1000);
	}
}    
}

function openApp(src) {
// 通過iframe的方式試圖開啟APP,如果能正常開啟,會直接切換到APP,並自動阻止a標籤的預設行為
// 否則開啟a標籤的href連結
	var ifr = document.createElement('iframe');
//				 alert("openApp-->"+src)
	ifr.src = src;
	ifr.style.display = 'none';
	document.body.appendChild(ifr);
	window.setTimeout(function( ){
		document.body.removeChild(ifr);
	},2000);
}


submitFn()    
複製程式碼

H5中喚起APP

相關文章