【Android进阶】Android js 与 Android 互调方法

Java与javascript互调 最近公司项目app为了加快开发效率和图文排版更加合理,部分功能模块采用H5开发,以前其他项目也用过这个混合开发方式,利用Webview加载网页内容。为了方便以后记录项目中所遇到bug进行相关记录,所以对相关内容进行简单使用描述,以便后面项目中遇到相关bug,进行后续追加。 本次主要写的是Java与javascrip方法的互调。(1).H5网页js调用Native方法 (2).Native代码... 阅读详情

一、创建一个HTML网址进行测试

代码语言:javascript

webView.html

代码语言:javascript

1.<html>
     <head>
         <title>
         </title>
     </head>
    <body>
<input type="button" value="Say hello" onClick="showAndroidToast('Web传递参数到Android')" />

<script type="text/javascript">
    function test(card_mo ,price){
    Android.showtest(card_mo+price);
    }
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

   </body>
</html>

2.创建一个JavaScriptInterface 接口类

代码语言:javascript

package com.ruidde.csndresourcedemo;

import android.content.Context;
import android.webkit.JavascriptInterface;
import android.widget.Toast;

/**
 * Created by Administrator on 2017/1/5.
 */

public class JavaScriptInterface {
    Context mContext;

    /** Instantiate the interface and set the context */
    JavaScriptInterface(Context c) {
        mContext = c;
    }
    @JavascriptInterface
    /** Show a toast from the web page */
    public void showToast(String toast) {
        Toast.makeText(mContext, toast+"0000000", Toast.LENGTH_SHORT).show();
    }
    @JavascriptInterface
    /** Show a toast from the web page */
    public void showtest(String toast) {
        Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
    }
}

3.在Activity中使用

代码语言:javascript

package com.ruidde.csndresourcedemo;

import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private String card_mo ,price ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        card_mo = "1234565";
        price = "32.00";

        WebView myWebView = (WebView) findViewById(R.id.webview);
        //设置js可用
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //注解自定义对象 js用自定义的对象如:Android 来调用Android中方法
        myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
        //网址本地自己写的
        myWebView.loadUrl("file:///android_asset/webView.html");
        //webView网页加载进度
        myWebView.setWebChromeClient(new WebChromeClient()
        {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
                if (newProgress == 100){ //网页加载完成
                    /**
                     *   //这是Android调用js的方法  如:test方法在js中要有(可以给js中传递参数)
                     *   方法在web加载完成后  会调用下面方法来给js传递参数
                     * */
                    view.loadUrl("javascript:test('" + card_mo+ "','" + price+ "')"); //aa是js的函数test()的参数
                }
            }
        }
        );
    }
  }

更多Android进阶指南 可以扫码 解锁 《Android十大板块文档》

1.Android车载应用开发系统学习指南(附项目实战)

2.Android Framework学习指南,助力成为系统级开发高手

3.2024最新Android中高级面试题汇总+解析,告别零offer

4.企业级Android音视频开发学习路线+项目实战(附源码)

5.Android Jetpack从入门到精通,构建高质量UI界面

6.Flutter技术解析与实战,跨平台首要之选

7.Kotlin从入门到实战,全方面提升架构基础

8.高级Android插件化与组件化(含实战教程和源码)

9.Android 性能优化实战+360°全方面性能调优

10.Android零基础入门到精通,高手进阶之路

敲代码不易,关注一下吧。ღ( ´・ᴗ・` ) 🤔

Android与JavaScript互调方法:详细教程与示例代码 通过在Android应用中嵌入WebView,并与JavaScript进行交互,可以实现丰富的功能和动态交互体验。本文将详细介绍如何在Android应用中实现Android与JavaScript的方法互相调用,并提供相应的示例代码。通过以上步骤,你可以在Android应用中实现Android与JavaScript的方法互相调用。在JavaScript中,可以使用绑定的Java对象名称来调用Android方法。在Java代码中,找到WebView组件的引用,并启用JavaScript支持。 阅读详情

相关推荐

实现Android与Web端代码互调的实用指南

本文还有配套的精品资源,点击获取 简介:在Android开发中,嵌入Web内容并实现Android原生Java代码与HTML中JavaScript的互调是一种常见需求。本教程详细介绍了如何通过 WebView 组件以及 addJavascriptInterface 和 loadUrl 方法,在Android与Web端之间进行函数调用...

weixin_42509720的博客 809

JS如何调用Android原生方法

实际上,JSBridge 就像其名称中的Bridge的意义一样,是 Native 和非 Native 之间的桥梁,它的核心是构建 Native 和非 Native 间消息通信的通道,而且这个通信的通道是双向的。1、增加Javascript的接口:把安卓的相关方法的接口赋值到一个特殊的js对象中,继而赋值给window对象中,比如下面代码块 项目中的PosObj。3、js调用Android方法()//将handleAndroid方法放到需要调用的地方。

wangbaobao512的博客 7856

android和js相互调用

android和js互相调用,并且可以传参数。

APP开发_Android 与 js 互相调用

Android 与 js 互相调用

突破编程 3530

Unity Acceleratorc与Cache Server unity的缓存服务器

文章目录1.作用概述2.用法(使用,看这个就够了)服务端下载部署Unity Acceleratorc修改http管理端口修改Editor连接端口客户端使用(设置好一次提交设置,团队拉取即可全部生效)3.测试平台切换测试资源导入测试(打开编辑器的情况下)项目启动测试(不打开编辑器的情况下)4.不同版本表现5.服务端监控6.服务端缓存7.冲突8.预警9.不同项目/不同配置-同种资源10.缓存清除 1.作用概述 编辑器模式下,导入资源,切换平台unity都会重新识别资源,大型项目很浪费时间,使用Cache Ser

euphorias的博客 3812

SAP_MM模块通过CC11 创建物料版本

通过本文,我们了解了 SAP 的[SAP_MM模块通过CC11 创建物料版本]的基本概念和应用方法。当物料主数据、BOM(物料清单)、工艺路线等对象需要进行变更控制时,通过创建“版本”或“更改单”来记录、控制和追溯变更。创建完变更主记录(Change Number)后,可在物料主数据维护时引用它,从而创建物料版本化信息。,在其中可以定义物料、BOM、工艺路线等对象的变更版本信息,从而在系统中实现版本化的物料管理。

我小时候很黑的博客 816

Android与JS交互方案及常见问题

如果检测到是预先约定好的协议,就调用相应方法,即JS需要调用Android中的方法。Android和JS通过webview.addJavascriptInterface(new JSKit(),"mjs")方法形成对象映射,JS中的mjs对象就可以调用Android中的JSKit对象中的方法了。当该JS通过Android的mWebView.loadUrl("file:///android_asset/javascript.html")加载后,就会回调shouldOverrideUrlLoading()。

weixin_53545232的博客 2640

V90伺服 EPOS模式下回原(详细配置+SCL源代码)

/ 输出上限 100.0%rSetPoint : Real;// 设置目标值工程量。// 通道转换参考值。Td : Real;

RXXW_Dor的博客 2665

Kotlin实现Android与js的互调,js调用安卓方法获得数据然后传回js,做逻辑操作

最近在研究kotlin,今天来整一下kotlin实现安卓和js的互调。大概的方法和java差不多。有一些小地方有差别,这里写这篇博客记录一下,有需要的朋友可以看下。在后面我也会附上源码。 Android和js的交互主要分为三种:1,安卓调用js的方法。2,js调用安卓的方法。3,回调,即js调用安卓的方法获得数据,然后数据回传给js,js做业务处理。...

流星魂小七的博客 1739

YOLOv11改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块

本文记录的是基于FasterNet的YOLOv11轻量化改进方法研究。FasterNet的网络结构借鉴 CNN 的设计理念,通过提出的PConv减少推理时的计算和内存成本,同时减少通道数并增加部分比例,降低延迟,并通过后续的PWConv来弥补特征信息可能缺失的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的和六种模型,以满足不同的需求。

Limiiiing的博客 2030

YOLO26涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇 | 引入 LFSB 差分双维注意融合模块,通过交替特征融合与分离策略,能够精准区分目标特征,顶会助力YOLO26有效涨点

本文提出LSFB差分双维注意融合模块,用于改进YOLO26目标检测模型。该模块通过融合-分离交替策略和差分注意力机制,有效提升模型在复杂场景下的特征分离能力,特别是在处理重叠物体或反射干扰时表现优异。LSFB采用双向投影、双维注意力计算和跨流减法算子,实现特征共享与独立提取的平衡。实验表明,该模块能显著减少特征混淆,提高检测精度和鲁棒性。文章还详细介绍了模块实现的核心代码、YAML配置文件修改方法以及三种改进方案,为YOLO26模型性能提升提供了创新解决方案。

Ai缝合怪、助力小伙伴高效发论文 326

Android中webview与JS交互、互调方法

对于试水的功能,一般公司都会采用H5的方式来开发,可以用很少的资源与很短的项目工期来完成。 但许多情况下,H5页面会需要一些原生持有的一些如用户信息之类的数据,一些交互也需要调用原生的,如toast之类要保持同一个手机风格一致的交互行为。这个时候就需要能够让JS主动调用原生的方法来进行操作或者获取数据。或者是原生调用JS的方法在H5加载的时候传递一些参数。对于原生调用JS的方法我们需要实现一个We

gengqiquan的博客 1万+

大模型之Spring AI实战系列(一):基础认知篇 - 开启智能应用开发之旅

Spring AI 是一个轻量级开源框架,旨在简化 AI 模型在企业级 Java 应用中的集成与管理。它提供了跨多个 AI 服务提供商的便携式 API,支持聊天、文本转图像、嵌入式模型等多种功能,并兼容主流的 AI 模型提供商如 OpenAI、Google 等。Spring AI 的核心功能包括结构化输出、向量数据库支持、工具/函数调用、可观察性、文档摄取 ETL 框架、AI 模型评估等。

寻道AI,探索AI无限可能! 6366

关于js与android方法互调的问题

在android平台上用WebView打开一个网页,进行javascript和android native方法的互调以及传参,网上这方面的资料很少,经过调试,将我的成果分享出来: 首先,在android开发平台上先定义一个WebView并设置相应的属性: mWebView.setWebChromeClient(new WebChromeClient());// 设置此属性可让webview支

Checkit的博客 903

Flutter框架GetX从入门到精通第二篇:路由管理-告别繁琐的Navigator

Flutter框架GetX从入门到精通第二篇:告别繁琐的Navigator。本系列将带你从零开始,一步步掌握 GetX 框架的核心功能与实战技巧。

鹏多多的博客 170

【JTAG】1149.6协议详解

JTAG1149.6协议是1149.1协议中Boundary-Scan结构的扩展,1149.1对交流耦合、差分或两者兼有的情况并没有得到充分的处理。该协议支持新的I/O测试结构。需要时变(AC)信号的高级I/O引脚允许测试它们之间的连接,这包括所有差分信号引脚或单端信号引脚,通过设计支持交流耦合。..................

xuhe0206的博客 4574

Android js 与 Android 互调方法?

一、创建一个HTML网址进行测试 webView.html <html> <head> <title> </title> </head> <body> <input type="button" value="Say hello" onClick="showAndroidToast('Web传递参数到Android')" /> <script ty

yyxhzdm的博客 400

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android与Js互调之传递图片

目录Android与Js互调的方式需求添加addJavascriptInterface注解方法录制成功后调用Js方法返回H5界面注意事项 Android与Js互调的方式 Android与JS通过WebView互相调用方法,实际上是: 1.Android去调用JS的代码 2.JS去调用Android的代码 二者沟通的桥梁是WebView 对于Android调用JS代码的方法有2种: 通过WebView的loadUrl() 通过WebView的evaluateJavascript() 对于JS调用Android

涛的博客 1476

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android webview与js实现互调

android webview与js实现互调 ·序言 随着移动端网络速度的逐步提升,近些年各大主流app基本都通过嵌入浏览器,如聚划算、淘宝、京东等。 ·优缺点 优点是: 1.开发的效率高,省时间,跨平台(android和ios可以用一套),节约开发成本。 2.版本更新方便,只需要替换后台网页内容,避免了每次小改动都要升级app,尤其是app store的审核。 3.测试方便,避免了iso和andorid分开开发导致的部分逻辑和实现细节的差异,节约测试成本。 4.后期维护方便,节约维护成本。

白腿乌鸦的废话 571

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

js与android原生的互调

webview的基本设置引言由于市面上应用基本上本地+HTML进行混合开发。 本地开发就是使用android系统提供的一些组件来实现 而HTML开发就是使用WebView加载的一个网页,进行开发。 因此,我们有必要更加深入了解一下WebView的使用。回顾大家回顾一下: 之前在查看新闻详情界面,我们对WebView有个简单认识。 WebView的基本使用 使用WebView的loadUr

u014469691的专栏 2493

Android与JS互调的简单使用

在项目开发过程中有时会遇到WebView在加载Js页面时,网页上的一些逻辑要通知Android本地进行简单的UI交互或者参数的实时传递,那么就需要我们在Android程序的代码里实现相应的互调配置,以达到互调的效果。下面我直接通过代码实现: JS调用Android方法: 1、先设置Android中的webview class WebViewActivity:Activity(){ over...

尹人入胜的博客 938

Android开发之android与JS互调 | Android与H5互调(附源码)

我们先看下JS代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Js与Android交互</title> </head> <body> <H2>点击获取按钮,弹出输入框内容&...

xiayiye5的博客 633

js与ios、安卓原生方法互调。

调用安卓方法并且传递参数过去:window.WebAppInterface.安卓方法("参数")window.webkit.messageHandlers.方法名.postMessage(vue2版接受ios传递过来的参数,vue3则把生命构子改为自定义函数方法即可。window.安卓暴露的方法=function(安卓传递过来的参数){}window.android.方法名(将该方法放入window对象即可。window.方法名 = 方法名。

weixin_73251435的博客 916
上一篇: 程序员就业现状分析:2024年黄金机遇与挑战并存
下一篇: Android开发者想要走的更远,Framework真的不能不会
Agent学习路线
博客等级 码龄6年 1万+粉丝 1903原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值