1、在html中设置链接
href=”[scheme]://[host]/[path]?[query]”
scheme可以自己在app内部设置成任意的,把android和ios的设置成一样的
2、若本地应用存在,直接打开app;若不存在,计时一段时间跳到appstore
需要判断ios还是android平台下的浏览器,需要判断微信浏览器
var openApp = function () {
var btnOpenApp = document.getElementById(open-app);
btnOpenApp.onclick = function () {
//打开本地应用函数
var open=function(url){
var timeout;
function try_to_open_app() {
timeout = setTimeout(function(){
window.location.href=url;
console.log(22)
}, 10);
}
try_to_open_app();
}
if (/android/i.test(navigator.userAgent)) {
//alert(This is Android'browser.);//这是Android平台下浏览器
if (/MicroMessenger/i.test(navigator.userAgent)) {
alert(This is MicroMessenger browser,请使用本地浏览器打开);//这是微信平台下浏览器
}
else {
open(andorid应用市场url);
}
}
if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
//alert(This is iOS'browser.);//这是iOS平台下浏览器
if (/MicroMessenger/i.test(navigator.userAgent)) {
alert(微信内置浏览器不支持打开本地应用,请点击右上角使用本地浏览器打开);//这是微信平台下浏览器
}
else {
open(ios应用市场url);
}
}
};
}
Android配置
Open Application
pageEncoding="ISO-8859-1"%>
window.location="market://search?q=com.singtel.travelbuddy.android";
String str = "market://details?id=" + getPackageName();
Intent localIntent = new Intent("android.intent.action.VIEW");
localIntent.setData(Uri.parse(str));
startActivity(localIntent);
HTML配置示例
Android获取参数:
Uri uri = getIntent().getData(); String test1= uri.getQueryParameter("arg0"); String test2= uri.getQueryParameter("arg1");
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Uri uri=Uri.parse(url);
if(uri.getScheme().equals("m")&&uri.getHost().equals("my.com")){
String arg0=uri.getQueryParameter("arg0");
String arg1=uri.getQueryParameter("arg1");
}else{
view.loadUrl(url);
}
return true;
}
});