为了账号安全,请及时绑定邮箱和手机立即绑定

Android与WebView的js交互

liusiqian... 移动开发工程师
难度中级
时长46分
学习人数
综合评分10.00
20人评价 查看评价
10.0 内容实用
10.0 简洁易懂
10.0 逻辑清晰
  • Android 空白项目

    查看全部
  • // WebView 开启对 js 加载的支持
    webView.getSettings().setJavaScriptEnabled(true);
            
    
    // WebView 上添加 js 方法的接口实现类
    webView.addJavascriptInterface(new jsMethodsObjectInterface(), "jsMethodsObjectName")


    查看全部
  • 开启允许 webvview 加载 js

    实现 js 接口类

    将 js 接口类添加到 webview 中


    查看全部
  • undefined 异常处理

    查看全部
  • array 类型不一致 bug

    查看全部
  • debug webview

    查看全部
  • chrome://inspect/#devices

    webview.setWebContentsDebuggingEnabled(true);


    查看全部
  • android:windowSoftInputMode="adjustPan"

    android 防止键盘遮挡

    查看全部

  • // load index.html from the assets folder
    WebView.loadUrl("file:///android_asset/index.html");
    
    // load logo.png from the res folder
    WebView.loadUrl("file:///android_res/drawable/logo.png");
    
    // load a web based URL, Oreilly's homepage in this case
    WebView.loadUrl("http://www.oreilly.com");


    查看全部
  • public class JsMethodsObjectInterface{
        private static final String TAG = "JsMethodsObjectInterface";
        
        @JavascriptInterface
        public void setInputValue(String value){
            Log.d(TAG, msg: "input value =" + value);
        }
    }


    查看全部
  • public class MainActivity extends AppCompatActivity{
        private WebView webView;
        private TextView textView;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initWidgets(savedInstanceState);
        }
        private void initWidgets(Bundle savedInstanceState) {
            webView = findViewById(R.id.webview);
            textView = findViewById(R.id.textview);
            
            // WebView 开启对 js 加载的支持
            webView.getSettings().setJavaScriptEnabled(true);
            
            // WebView 上添加 js 方法的接口实现类
            webView.addJavascriptInterface(new jsMethodsObjectInterface(), "jsMethodsObjectName"n)
        }
    }


    查看全部
  • public class MainActivity extends AppCompatActivity{
        private WebView webView;
        private TextView textView;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initWidgets(savedInstanceState);
        }
        private void initWidgets(Bundle savedInstanceState) {
            webView = findViewById(R.id.webview);
            textView = findViewById(R.id.textview);
            
            // WebView 开启对 js 加载的支持
            webView.getSettings().setJavaScriptEnabled(true);
        }
    }


    查看全部
  • WebView 调用 Java 方法


    查看全部
  • WebView调用Java方法

    步骤

    1.允许WebView加载js

    webView.getSettings().setJavaScripteEnabled(true);

    2.编写js接口类

    3.给WebView添加js接口

    webView.addJavaScriptInterface(obj,name);


    查看全部
  • 对应图片解释

    1. js掉用java代码,java代码中报错,app不会崩溃只是会在浏览器中报错

    2. 使用时需要判断对象是否存在,否则可能不是想要的效果

    3. 因为js中一个数组中可以包含多种类型,java中不行,遇到这种情况可以用json字符串代替

    4. js中传递字符串如果为空的话会传递undefined

    查看全部

举报

0/150
提交
取消
课程须知
需要有一定Android基础,并能够了解WebView的基本使用。
老师告诉你能学到什么?
1、Webview调用Java方法;2、Android调用js方法;3、如何使用Chrome调试;4、js交互中常见的一些错误。

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!