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"/>