Android与H5之间的互调

文章目录

前言:

android发展至今,为了屏幕适配、apk的大小以及代码的适配,在很多情况下都是通过H5互调。

WebView

初始化

   @SuppressLint("JavascriptInterface")
    private void initWebView() {
        //1.加载页面-H5,html,自定义浏览器,直接在
        webView = new WebView(this);
        WebSettings webSettings = webView.getSettings();
        //设置支持js
        webSettings.setJavaScriptEnabled(true);

        //不调用浏览器,自身成为小型浏览器
        webView.setWebViewClient(new WebViewClient());

		//在使用Javascript里给到点击事件调用AndroidAndJsInterface类里的方法
        webView.addJavascriptInterface(new AndroidAndJsInterface(),"Android");
        //加载本地-网络html
        webView.loadUrl("file:///android_asset/JavaAndJavaScriptCall1.html");

        //webView.loadUrl("https://www.baidu.com/");
        setContentView(webView);
    }

android中的JavaScript的接口 web —> android
@JavascriptInterface注解非常重要如果没有注解的话,web端是无法调用android里的方法的。

    class AndroidAndJsInterface{
        //交互必要的交互注解方式
        @JavascriptInterface
        public void showToast(){
            Toast.makeText(JavaAndJsCallActivity.this, "android 代码", Toast.LENGTH_SHORT).show();
        }
    }

javascript代码

<!-- window 是固定写法,Android 是“webView.addJavascriptInterface(new class,"Android")一致
showToast是interface.Class里的方法 -->
<button onclick="window.Android.showToast()">JS调用Android</button>

android 传参数给 web

            webView.loadUrl("javascript:f3()");
            //webView.loadUrl("javascript:javaCalls("+"'"+accent+"'"+")");
            //webView.loadUrl("javascript:f3()");
            setContentView(webView);

拿到url播放视频

			Intent intent= new Intent();
            intent.setDataAndType(Uri.parse("url"),"video/*");
            startActivity(intent);

指定apk播放视频

if (com.freeme.util.FreemeFeature.getLocalBoolean("config.open_receive_images.sprd_gallery", false)) {
   if (mimetype != null && mimetype.contains("video")) {
        activityIntent.setComponent(new android.content.ComponentName("包名",
              "Activity.name"));
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值