demo代码如下
package wang.qiaoce.webtest; import android.content.Context; import android.os.Build; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.webkit.JavascriptInterface; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.TextView; public class WebTest extends AppCompatActivity { private WebView webview; private TextView testTxt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web_test); testTxt = (TextView)findViewById(R.id.testTxt); webview = (WebView)findViewById(R.id.webView); WebSettings webSettings = webview.getSettings(); webSettings.setJavaScriptEnabled(true); webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); webview.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); if (Build.VERSION.SDK_INT >= 19) { webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); } webview.addJavascriptInterface(new jsApi(),"test"); webview.loadUrl("file:///android_asset/index.html"); } class jsApi { @JavascriptInterface public void hello(String htmlContent) { testTxt.setText(htmlContent); } } }
权限添加
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>