WebView的前世今生(一)------简单的使用方法

本文介绍了WebView在Android中的基本使用,包括加载页面、Android与Js的传统交互方式及使用JsBridge实现更复杂的交互。通过实例展示了如何处理加载问题、调用Js方法以及注册接口供Js调用。此外,还提供了遇到问题时的解决方案和参考资源。
摘要由CSDN通过智能技术生成

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值