MUI H5+ APP 分享H5连接 通过scheme唤醒APP

MUI H5+ APP 分享H5连接 通过scheme唤醒APP

添加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

 

常用的本地的url:
 
launch center pro支持的参数主要有两个,[prompt]文本输入框和[clipboard]剪贴板

淘宝宝贝搜索 taobao://http://s.taobao.com/?q=[prompt]
淘宝店铺搜索taobao://http://shopsearch.taobao.com/browse/shop_search.htm?q=[prompt]

omnifocus:///add?name=[prompt]&note=[clipboard]
mdict://[prompt]

QQ的url是 mqq://
微信是weixin://
淘宝taobao://
点评dianping:// dianping://search
微博 sinaweibo://
名片全能王camcard://
weico微博weico://
支付宝alipay://
豆瓣fm:doubanradio://
微盘 sinavdisk://
网易公开课ntesopen://
美团 imeituan://
京冬openapp.jdmoble://
人人renren://
我查查 wcc://
1号店wccbyihaodian://
有道词典yddictproapp://
知乎zhihu://
优酷 youku://

以下为ipad版url schemes:

ZAKER :【zakeripad://】
mdict:【mdict://】
京东hd:【openApp.jdiPad://】
易迅:【wx6964eb0b10aa369b://】;【icson://】;【wap2app://】;【com51buyiPad://】;【sinaweibosso.2217266362://】;【yixunipad://】;
wunderlist:【fb208559595824260://】;【wunderlist://】;
1password:【db-0bcm217bz8olcxj://】;
支付宝:【alipay://】;
亚马逊:【fb115829135094686://】;
查找朋友:【grenada://】;【findmyfriends://】;【fmf1://】;
查找iphone:【fmip1://】;
homestyler:【fb110202249127916://】;
百度旅游hd:【sinaweibosso.3772466956://】;
百度视频hd:【BaiduVideoiPad://】;【baiduvideoipadapp://】;
百度相册hd:【BaiDuCloudAlbumHD://】;
百度音乐hd:【tencent100518384://】;【QQ05FDC9F0://】;【wxdeda8b7428c87b0b://】;【sinaweibosso.4257500584://】;【BaiduMusicHD://】;
百度浏览器hd:【bdbrowser://】;
百度文库hd:【bdwenku://】;
百度地图hd:【sinaweibosso.675661989://】;
百度云:【tencent100312028://】;
扇贝炼句:【wx6cf98af31a47ba29://】;
百词斩:[wxce5d9e837051d623://】;
一个one:【clover-one://】;
launchpro:【launch://】;【launchpro://】;【launchpro-light://】;【launchpro-dial://】;【launchpro-tweet://】;【launchpro-brightness://】;【launchpro-messaging://】;【launchpro-email://】;【launchpro-dropbox://】;【launchpro-clipboard://】;【launchpro-facebook://】;【launchpro-sinaweibo://】;【launch-textexpander://】;【db-23algz5zbfx3ocs://】;【launchipad://】;
当当hd:【dangdanghd://】;【ddhd://】;
大众点评hd:【dianpinghd://】;
多看阅读:【duokan-reader://】;
艺龙旅行hd:【elongiPad://】;
圈点hd:【skitch://】;
食记hd:【wxb9a9141190826bd8://】;
印象笔记hd:【enx://】;
popAgraph:【popagraphtumblr://】;
dropbox:【db-auth://】;【dbapi-1://】;【dbapi-2://】;【dbapi-3://】;【fb210019893730://】;
goodreader:【ghttp://】;【ghttps://】;【grhttp://】;【grhttps://】;【giwhttp://】;【giwhttps://】;【gropen://】;【com.goodreader.sendtogr://】;
houzz:【fb166981393359376://】;
ifttt:【ifttt://】;
名片全能王hd:【camcard://】;【fb444471182246461hdfull://】;【CamCardHDOpenAPI://】;
万年历:【wx5f3a0d4653cd3485://】;
拉手团购hd:【LaShouGroupHDPay://】;
美团hd:【iMeituan://】;
evermemo:【evermemo://】;
网易云课堂:【wangyiyunketang://】;
网易公开课:【ntesopen://】;
订票助手2:【trainassistfree://】;
pcalc lite:【pcalc://】;
爱奇艺视频:【QIYIHD-iPad://】;
documents:【fb435446596521711://】;
三国kill:【sgk://】;
知乎日报hd:【wb2812384762://】;【wb801442902://】;【wx81bd672c6e11bad0://】;【QQ05FE6368://】;【tencent100557672://】;【pocketapp89757://】;
扇贝新闻:【shanbaynews://】;
扇贝单词:【shanbay://】;
扇贝单词hd:【shanbaywordshd://】;
微盘:【sinaweibosso.2938478327://】;【sinavdisksso.2938478327://】;
新浪公开课:【wxa376b1970423b610://】;
skype:【skype://】;
什么值得买hd:【wxed08b6c4003b1fd5://】;
搜狐视频hd:【sohu-SViPad://】;【sohuvideohd://】;【wx91d741cfa16379bc://】;
teamviewer:【teamviewer8://】;
格志:【griddiary://】;【sumi-interactive://】;【db-d7wn1aiwz2ck3tj://】;
淘宝hd:【taobao://】;【itaobao://】;【taobaohd://】;【wx25e5e60c1e9fcd97://】;【sinaweibosso.346252009://】;【zhuzhancaipiao4ipad://】;【laiwangc6e34c6bf://】;
天猫:【tmall://】;
腾讯视频hd:【tenvideohd://】;【tenvideo2://】;
qq通讯录:【tencentappqqpim://】;
qq:【mqqflyticket://】;
微信:【weixin://】;【fb290293790992170://】;【wechat://】;
同步推正版HD:【tbtui://】;【tuihd://】;
航旅纵横pro:【sinaweibosso.umetrip://】;【umetrippro://】;
mathpad:【myscriptmathpad://】;
下厨房:【wxd80665a1fc1bf282://】;
无忌论坛:【wb801384327://】;【wxe932dc78276c3c24://】;【wb1315970163://】;
雅虎天气!:【yweather://】;
一号店:【ipadstore://】;
优酷hd:【youkuhd://】;
知乎日报:【wx841a6aace4a1dca4://】;
知乎:【zhihu://】;
dieselfacts:【dk.publishonline.dieselfacts.china://】;【dps.9aebe5a79fb04d9abddf77d97c6794dc://】;
欧陆词典pro:【eudic://】;
拓词:【towordsp://】;
瘦身旅程:【sina.5253876156240b2daf015c9d://】;
词ci:【wx599b00cd734bd4a9://】;
 newsapp:// 新闻首页
 newsapp://vote 每日一投
网易公开课: ntesopen://
网易应用: apper://
网易彩票: ntescaipiao://
网易微博: microblogging://
有道词典: yddictProapp:// 
一淘火眼比价:QQ05FDCA9D://
支付宝信用卡还款页面:alipays://platformapi/startapp?appId=09999999
Evernote[evernote://]
SimpleMind+[simplemind://]
MindMeister [mindmeist://]
Daybox[daybox://]
QQ同步助手[qqpim://]
福晰PDF[ boxsdk-srnspz7etrtko4y9u2tqcj8i8gzzqzm6://]
izip[db-2vxl8w8i8zibqzc://]
wps office[kingsoftofficeapp://]
CAD快速看图:没找到
有道[yddict://]
随手记[fdmoney://]
全国违章查询[mianfeijiaotongweizhang://](木仓科技出品的)
Black Tower![blacktower1://]
Stick Hero英雄难过棍子关[com.ketchapp.stickhero:/ 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebApp mui&H5+ 可以结合使用 Native.js for Android 完成视频录制和处理。以下是大致的实现步骤: 1. 引入 Native.js for Android 插件,该插件可以在 H5+ 中使用 Native 方法。 2. 使用 H5+ API 调用 Android 摄像头,获取视频流,并且使用 Native 方法将视频流传递给 Android Native 代码。 3. 在 Android Native 代码中,使用 Camera2 API 获得视频流,并且使用 MediaRecorder API 将视频流录制为 MP4 格式的视频。 4. 将录制好的视频文件保存到指定的路径,并且使用 Native 方法将视频文件路径传递给 H5+ 代码。 5. 在 H5+ 代码中,使用 HTML5 Video 标签来播放录制好的视频。 示例代码如下: H5+ 代码: ``` // 引入 Native.js for Android 插件 document.addEventListener('plusready', function() { var nativeApi = plus.android.importClass('io.dcloud.NativeApi'); var nativeObj = new nativeApi(); // 使用 H5+ API 调用 Android 摄像头 var cmr = plus.camera.getCamera(); cmr.startVideoCapture(function(path) { // 使用 Native 方法将视频流传递给 Android Native 代码 nativeObj.exec('com.example.camera', 'startRecording', [path], function(result) { console.log(result); // 使用 Native 方法将视频文件路径传递给 H5+ 代码 nativeObj.exec('com.example.camera', 'getVideoPath', [], function(path) { console.log(path); var video = document.getElementById('video'); video.src = path; video.play(); }, function(e) { console.log(e); }); }, function(e) { console.log(e); }); }, function(e) { console.log(e); }, {filename:'_doc/video/', index:1}); }); ``` Android Native 代码: ``` public class CameraPlugin extends CordovaPlugin { private CameraDevice cameraDevice; private MediaRecorder mediaRecorder; private String videoFilePath; @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if ("startRecording".equals(action)) { startRecording(args.getString(0), callbackContext); return true; } else if ("getVideoPath".equals(action)) { getVideoPath(callbackContext); return true; } return false; } private void startRecording(String path, CallbackContext callbackContext) { try { mediaRecorder = new MediaRecorder(); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setOutputFile(path); mediaRecorder.setVideoEncodingBitRate(10000000); mediaRecorder.setVideoFrameRate(30); mediaRecorder.setVideoSize(1280, 720); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); mediaRecorder.prepare(); mediaRecorder.start(); videoFilePath = path; callbackContext.success(); } catch (Exception e) { callbackContext.error(e.getMessage()); } } private void getVideoPath(CallbackContext callbackContext) { callbackContext.success(videoFilePath); } // ... } ``` 需要注意的是,在 Android 6.0 及以上版本的系统中,需要动态请求摄像头和存储权限。同时,在录制视频时,需要使用新版的 Camera2 API 替换旧版的 Camera API。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值