您的位置:首页 > 移动开发 > Android开发

Android H5 集成开发那点事(持续更新)

2016-04-13 15:05 459 查看

Android H5 集成开发 ,兼容

WebView兼容H5页面拨打电话,调用邮件等实现方式

JS调用Android开发者实现的调起电话或者邮箱等方法.

WebViewClient的shouldOverrideUrlLoading方法中去处理相关的判断

H5直接通过JS, 利用Intent调起系统提供的手机电话或者邮箱

一. 利用JS,让Android开发者实现调起拨打电话或者是邮箱等方法调用,提供给H5调用(JsBridge:https://github.com/lzyzsd/JsBridge)

webView.registerHandler("action", new BridgeHandler() {
@Override
public void handler(String data, CallBackFunction function) {
if (data != null&&data .startsWith("tel:")){//支持拨打电话
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(url));
startActivity(intent);
}
function.onCallBack("YES");
}
});


二. WebViewClient的shouldOverrideUrlLoading方法中去处理相关的判断

mWbView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {//此处能拦截超链接的url,即拦截href请求的内容.
if (url.startsWith("tel:")){//支持拨打电话
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(url));
startActivity(intent);
return  true;
}else if (url.startsWith("mailto:")) {//支持发送邮箱
MailTo mt = MailTo.parse(url);
Intent i = newEmailIntent(mt.getTo(), mt.getSubject(), mt.getBody(), mt.getCc());
startActivity(i);
view.reload();
return true;
}
view.loadUrl(url);
return true;
}
});


三. H5直接通过JS, 利用Intent调起系统提供的手机电话或者邮箱

var Uri = plus.android.importClass("android.net.Uri");
var Intent = plus.android.importClass("android.content.Intent");
var number = new Uri.parse("tel:4001109999");
var callIntent = new Intent(Intent.ACTION_CALL, number);//这步是关键,ACTION_CALL而不是ACTION_DIAL
plus.android.runtimeMainActivity().startActivity(callIntent);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: