1.写html和安卓布局
<Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <WebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="wrap_content"> </WebView>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<input id="input">
<button id="button" οnclick="sayHello()">按钮</button>
<script>
function sayHello(){
var name =document.getElementById("input").value;
app.sayHello(name)
}
function showName(name){
document.getElementById("input").value=name;
}
</script>
</body>
</html>
2.编写activity
private WebView webView;
private WebAppInterface webAppInterface;
class WebAppInterface{ private Context mContext; public WebAppInterface(Context context){ this.mContext=context; } @JavascriptInterface public void sayHello(String name){ Toast.makeText(mContext,name,Toast.LENGTH_SHORT).show(); } public void showName(final String name){ runOnUiThread(new Runnable() { @Override public void run() { webView.loadUrl("javascript:showName('"+name+"')"); } }); } }
webView=findViewById(R.id.webview); String url ="http://a.st"; webView.loadUrl(url); webView.getSettings().setJavaScriptEnabled(true); webAppInterface=new WebAppInterface(this); webView.addJavascriptInterface(webAppInterface,"app"); Button button =findViewById(R.id.btn); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { webAppInterface.showName("wirhiutrhi"); } });
要看下webview控件的setting配置,来更好的设置
可以实现互相调用,可以做hybird拉