安卓和html的互相调用
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" onclick="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拉