H5调用打电话

安卓代码

public class JsCallJavaCallPhoneActivity extends Activity {

private WebView webView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_js_call_java_video);

webView = (WebView) findViewById(R.id.webview);

WebSettings webSettings = webView.getSettings();

//设置支持javaScript脚步语言

webSettings.setJavaScriptEnabled(true);

//支持双击-前提是页面要支持才显示

//        webSettings.setUseWideViewPort(true);

//支持缩放按钮-前提是页面要支持才显示

webSettings.setBuiltInZoomControls(true);

//设置客户端-不跳转到默认浏览器中

webView.setWebViewClient(new WebViewClient());

//设置支持js调用java

webView.addJavascriptInterface(new AndroidAndJSInterface(), "Android");

//加载本地资源

//        webView.loadUrl("http://atguigu.com/teacher.shtml");

webView.loadUrl("file:///android_asset/JsCallJavaCallPhone.html");

//        webView.loadUrl("http://10.0.2.2:8080/assets/JsCallJavaCallPhone.html");

}

class AndroidAndJSInterface {

/**

* 该方法将被js调用,用于加载数据

*/

@JavascriptInterface

public void showcontacts() {

// 下面的代码建议在子线程中调用

String json = "[{\"name\":\"阿福\", \"phone\":\"18600012345\"}]";

// 调用JS中的方法

webView.loadUrl("javascript:show('" + json + "')");

}

@JavascriptInterface

public void call(String phone) {

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));

if (ActivityCompat.checkSelfPermission(JsCallJavaCallPhoneActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {

return;

}

startActivity(intent);

}

JS源码


function show(jsondata){

var jsonobjs = eval(jsondata);

var table = document.getElementById("personTable");

for(var y=0; y

var tr = table.insertRow(table.rows.length);

var td1 = tr.insertCell(0);

var td2 = tr.insertCell(1);

td2.align = "center";

td1.innerHTML = jsonobjs[y].name;

td2.innerHTML = ""+ jsonobjs[y].phone+ "";

}

}

你可能感兴趣的:(H5调用打电话)