WebView的前世今生(一)------简单的使用方法
前言
先前看了几篇关于webView的博客,使用交互什么的都讲得很清楚,笔记记了很多,以为自己算是掌握了webView的使用了。
今天写个demo的时候,发现坑还不少。
纸上学来终觉浅,绝知此事要躬行啊。
打算webView写一整个系列吧,今天这篇就先写写一些简单上手使用的,记录一些坑。
使用WebView加载前端页面
主要是使用webView的loadUrl()方法,直接看代码吧↓
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 不在xml中定义WebView ,而是在需要的时候在Activity中创建
final WebView webView = new WebView(getApplicationContext());
// 复写WebViewClient的shouldOverrideUrlLoading()方法,使得打开网页时不调用系统浏览器, 而是在本WebView中显示
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
// 如果访问的页面中要与Javascript交互,则webView必须设置支持Javascript
webView.getSettings().setJavaScriptEnabled(true);
// 1. 加载一个百度页面
webView.loadUrl("https://www.baidu.com/");
// 2. 加载一个自己的html文件
// 先载入JS代码, 格式规定为:file:///android_asset/文件名.html
// 文件放在 ...\app\src\main\assets\下
// webView.loadUrl("file:///android_asset/js.html");
// 最后别忘了把webView加入布局
setContentView(webView);
}
}
这里唯一要注意的是:添加网络权限
<uses-permission android:name="android.permission.INTERNET"/>
普通传统的android 与 js 交互方法
-
android 调用 js 的方法
这里主要是使用webView.loadUrl()方法,看代码↓
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final WebView webView = new WebView(getApplicationContext()); webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webView.getSettings().setJavaScriptEnabled(true); webView.