XML代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Test Page</title>
<script>
function call_javascript_method(txt){
var p=document.getElementById('txt1');
alert(p.innerHTML);
p.innerText=txt;
}
function call_android_method(){
window.tgf.Jafun();
}
</script>
</head>
<body>
<div>
<p id="txt1" style="font-size: x-large;color: blueviolet;">我是P文本</p>
<button id="btn_submit" onclick="call_android_method();">调用Android方法</button>
</div>
</body>
</html>
安卓和js互掉
public class MainActivity extends AppCompatActivity {
private WebView web;
private Button bt;
private String str="安卓调用js";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web = (WebView) findViewById(R.id.web);
bt = (Button) findViewById(R.id.bt);
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setAllowFileAccess(true);
web.loadUrl("file:///android_asset/index.html");
web.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
web.getSettings().setLoadWithOverviewMode(true);
web.getSettings().setSupportZoom(true);
web.getSettings().setUseWideViewPort(true);
web.getSettings().setBuiltInZoomControls(true);
web.addJavascriptInterface(this,"tgf");
web.setWebViewClient(new WebViewClient());
web.setWebChromeClient(new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
web.loadUrl("Javascript:call_javascript_method('"+str+"')");
}
});
}
@JavascriptInterface
public void Jafun(){
Toast.makeText(this, "js调用安卓", Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
if(web != null){
web.clearCache(true);
web.clearHistory();
web.clearFormData();
web.destroy();
}
}
}