安卓Native和H5页面进行交互

简介: 安卓Native和H5页面进行交互   1、H5页面调用安卓Native界面    1)通过给webView添加JsInterface,安卓提供接口,让H5来进行调用        a)安卓写一个类,里面的方法需要用通过注解来表明是java接口的方法。

安卓Native和H5页面进行交互


  1、H5页面调用安卓Native界面
    1)通过给webView添加JsInterface,安卓提供接口,让H5来进行调用
        a)安卓写一个类,里面的方法需要用通过注解来表明是java接口的方法。

      eg:

private  class WebInterface {
        @JavascriptInterface
        public void callFromJSBasicDataType(int x, float y, char c, boolean result) {
            String str = "-" + (x + 1) + "-" + (y + 1) + "-" + c + "-" + result;
            Log.e("tttt", "tttttt"+str);
        }
        @JavascriptInterface
        public void callAndroidMethod() {
            Log.e("tttt", "tttttt2");
        }
    }

     b)设置webView可以支持js
      eg:
          webView.getSettings().setJavaScriptEnabled(true);
         c)给webView添加js接口类,并取别名
          webView.addJavascriptInterface(new WebInterface(), "robot");
    
    至此,安卓的配置完成了。
    
      下面配置HTML页面
      在代码中添加下面的代码,如果加载了页面了,就会调用起别名叫robot这个接口类里面的js接口方法
    <p>
        <button onclick="robot.callFromJSBasicDataType(1,2,'a',true);">点击我调用android 方法</button>
    </p>

    2)通过设置webview的setWebViewClient。安卓通过url跳转时的改变,来进行不同的操作
当webview加载的页面出现变化的时候,可以进行不同的操作,例如访问站外的网址,或者黑名单的网址进行提示
    eg:

wb.setWebViewClient(new Custom());
    
    private class Custom extends WebViewClient{
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub
            Log.e("tttt", url);
            if (url.contains("bai")) {
                Dialog d=new Dialog(MainActivity.this);
                d.setTitle("ttttt");
                d.show();
                return true;
            }
            return false;
        }
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }
        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);
        }
    }

  2、安卓Native界面调用H5方法
主要就是通过webview的LoadUrl方法
eg:
webView.loadUrl("javascript:noParamFunction();");
注:需要页面加载完成之后调用才有效。因为js脚本需要完全加载到页面中才可以调用到,否则没有任何效果

 

相关文章
|
2月前
|
Java Linux Android开发
移动应用开发与操作系统的交互:深入理解Android和iOS
在数字时代,移动应用成为我们日常生活的一部分。本文将深入探讨移动应用开发的核心概念、移动操作系统的工作原理以及它们如何相互作用。我们将通过实际代码示例,展示如何在Android和iOS平台上创建一个简单的“Hello World”应用,并解释其背后的技术原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。
|
6月前
|
Android开发 容器
35. 【Android教程】视频页面:ViewPager
35. 【Android教程】视频页面:ViewPager
60 3
|
7月前
|
Android开发
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
Android WindowFeature小探究,Android客户端Web页面通用性能优化实践
|
4月前
|
存储 安全 物联网
Android经典实战之跳转到系统设置页面或其他系统应用页面大全
本文首发于公众号“AntDream”,关注获取更多技巧。文章总结了Android开发中跳转至系统设置页面的方法,包括设备信息、Wi-Fi、显示与声音设置等,并涉及应用详情与电池优化页面。通过简单的Intent动作即可实现,需注意权限与版本兼容性。每日进步,尽在“AntDream”。
423 2
|
4月前
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
116 12
|
4月前
|
监控 安全 API
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
Android项目架构设计问题之保证线上用户不会进入到本地配置页面如何解决
32 0
|
4月前
|
Android开发
Android项目架构设计问题之定义一个关闭当前页面的Action如何解决
Android项目架构设计问题之定义一个关闭当前页面的Action如何解决
18 0
|
4月前
|
JSON Android开发 数据格式
Android项目架构设计问题之实现交互响应的结构化处理如何解决
Android项目架构设计问题之实现交互响应的结构化处理如何解决
19 0
|
6月前
|
JavaScript 前端开发 Android开发
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
|
6月前
|
传感器 Android开发 UED
Android统一设置页面竖屏
【6月更文挑战第4天】
156 8
下一篇
无影云桌面