首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android中Java和JavaScript交互

Android中Java和JavaScript交互 Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。...调用js的基本格式为webView.loadUrl(“javascript:methodName(parameterValues)”) 调用js无参无返回值函数 String call = "javascript...:sayHello()"; webView.loadUrl(call); 调用js有参无返回值函数 注意对于字符串作为参数值需要进行转义双引号。...String call = "javascript:alertMessage(\"" + "content" + "\")"; webView.loadUrl(call); 调用js有参数有返回值的函数...Android在4.4之前并没有提供直接调用js函数并获取值的方法,所以在此之前,常用的思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回。

1.5K60

Android中Java和JavaScript交互

Android提供了一个很强大的WebView控件用来处理Web网页,而在网页中,JavaScript又是一个很举足轻重的脚本。本文将介绍如何实现Java代码和Javascript代码的相互调用。...WebView开启JavaScript脚本执行 WebView设置供JavaScript调用的交互接口。 客户端和网页端编写调用对方的代码。...调用js的基本格式为webView.loadUrl(“javascript:methodName(parameterValues)”) 调用js无参无返回值函数 lineos:false 1 2 String...call = "javascript:sayHello()"; webView.loadUrl(call); 调用js有参无返回值函数 注意对于字符串作为参数值需要进行转义双引号。...); 调用js有参数有返回值的函数 Android在4.4之前并没有提供直接调用js函数并获取值的方法,所以在此之前,常用的思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回

93220
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android开发笔记(一百五十一)WebView与JavaScript交互的四种形式

    App通知Web执行某项动作 Web提供一个JavaScript方法,然后App由WebView调用loadUrl加载该JS方法,具体的App代码如下所示: wv_js.loadUrl("javascript...返回的字符串:"+msg; } } 接着还要调用WebView对象的addJavascriptInterface方法,给这个新类注册一个实例名,然后JS才能通过该实例名调用App的方法。... javascript:showAndroidDialog()">让android弹窗 javascript:showMsgInAndroid()">调用Android方法获得字符串...JS调用App方法,返回值中的中文是正常;但App获取JS方法,返回值的中文却是“\u”打头的字符串,所以要先将JS返回的字符串做转义处理,转义后的字符串才是App能够处理的正常汉字。 5.

    1.3K10

    JS & JAVA(Android) 的互相调用(简介)

    javascript:changeColor()"); 在android 4.4 之后我们可以使用最新的办法,这个也是用于如果js代码有返回值的话我们可以使用String来接收; mWebView.evaluateJavascript...一、 Android 4.4 之前 JAVA 调用J S并取到返回值 目前的解决方案是通过java反射机制 在android.webkit包中有个BrowserFrame私有类,该类中有个Native...添加方法,并使用反射实现。...2.将布局文件中的WebView修改为自定义的WebView 3.使用新的WebView调用方法,执行js方法获取返回值 自定义WebView如下 public String stringByEvaluatingJavaScriptFromString...,一定要记住使用单引号 ’ 将其包裹,否则 JavaScript(可能)会无法解析这个字符串,提示未定义。

    80820

    Android开发笔记(六十四)网页加载与JS调用

    中注册该java代码的对象,并演示javascript的调用过程: wv_web.getSettings().setJavaScriptEnabled(true); wv_web.addJavascriptInterface...:showMsgInAndroid()">调用android方法 Android与js互调获得返回值 js调用Android方法,可直接获取调用的返回值,难点在于Android调用...因为WebView加载网页是异步的,所以loadUrl方法调用js无法直接获得返回值。多数情况只能在js代码中回调Android方法,从而间接获取Android调用js的返回值。...4、js获取Android方法返回值中的中文是正常,但Android获取js方法返回值的中文却是“\u”打头的字符串,所以Android要先将js返回的字符串做转义处理,即调用上面的UnicodeToString...代码示例 下面是WebView使用的代码例子: import android.annotation.SuppressLint; import android.app.Activity; import

    6.4K10

    【Android开发进阶系列,整理】Android与h5交互专题

    1 交互原理 1.1 webview如何加载H5页面         我们都知道在Android中是通过webView来加载html页面的,根据HTML文件所在的位置不同写法也不同: *//加载assets...①调用H5中无参无返回值的方法     直接可以调用mWebView.loadUrl("JavaScript:show()");图2为H5中show()方法。...mWebView.loadUrl("JavaScript:show()"); 图2:android调用H5中无参数无返回值的方法,截图为H5中的方法 1.2.3 调用H5中带返回值的方法...1.3.1 @JavascriptInterface注解使用     在Android4.2以上可以直接使用@JavascriptInterface注解来声明,下面是在一个本地Java方法  public...①.Java调用js代码 String call = "javascript: sumToJava(1, 2)"; webView.loadUrl(call); ②.js函数处理,并将结果通过调用java

    95740

    Android应用安全解决方案

    name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview...明文存储密码风险 解决方案 WebView.getSettings().setSavePassword(false) Webview File同源策略绕过漏洞 将不必要导出的组件设置为不导出,并显式设置所注册组件的...“android:exported”属性为false 如果需要导出组件,禁止使用File域 WebView.getSettings.setAllowFileAccess(false); 应用数据任意备份风险...URL信息检测就是通过检测移动应用程序代码内部所存在的URL地址信息,尽可能呈现出应用中所有的URL信息,便于应用开发者查看并评估其安全性。...解决方案 1、核查并评估所有的URL信息,判断是否存在涉及内部业务等敏感信息的URL地址,进行删除; 2、尽量不要将与客户端业务相关的URL信息以硬编码的方式写在应用客户端中,建议以动态的方式生成所需要请求的

    1.2K40

    浅谈Hybrid

    通过更加定制化的 JSBridge,并使用双 WebView 双线程的模式隔离了 JS 逻辑与 UI 渲染,形成了特殊的开发模式,加强了 H5 与 Native 混合程度,提高了页面性能及开发体验。...Native App 是一种基于智能手机本地操作系统如 iOS、Android、WP 并使用原生程式编写运行的第三方应用程序,也叫本地 app。...但这几种方法在实际的使用中有利有弊,但由于prompt是几个里面唯一可以自定义返回值,可以做同步交互的,所以在目前的使用中,prompt是使用的最多的。...// mWebView = new WebView(this); //即当前webview对象 mWebView.loadUrl("javascript: 方法名('参数,需要转为字符串')"); /...//异步执行JS代码,并获取返回值 mWebView.evaluateJavascript("javascript: 方法名('参数,需要转为字符串')", new ValueCallback() {

    6.9K30

    JSBridge深度剖析

    Android端 Native调JS native调用js比较简单,只要遵循:”javascript: 方法名(‘参数,需要转为字符串’)”的规则即可。...在4.4之前,调用的方式: // mWebView = new WebView(this); mWebView.loadUrl("javascript: 方法名('参数,需要转为字符串...javascript: 方法名('参数,需要转为字符串')", new ValueCallback() { @Override public void onReceiveValue...) mWebView.loadUrl(“javascript: 方法名(‘参数,需要转为字符串’)”);函数需在UI线程运行,因为mWebView为UI控件 JS调Native Js调用Native需要对...其实使用JSBridge有很多方面的考虑: Android4.2以下,addJavascriptInterface方式有安全漏掉 iOS7以下,JS无法调用Native url scheme交互方式是一套现有的成熟方案

    3.8K60

    WebView深度学习(一)之WebView的基本使用以及Android和js的交互

    五、WebView的使用漏洞 及其修复方式 六、WebView 的缓存机制 & 资源预加载方案 由于内容太多,分三篇讲解: WebView深度学习(一)之WebView的基本使用以及Android...; // 因为该方法在 Android 4.4 版本才可使用,所以使用时需进行版本判断 if (version < 18) { mWebView.loadUrl("javascript:callJS...3.特点: 优点:不存在方式1的漏洞; 缺点:JS获取Android方法的返回值复杂。...如果JS想要得到Android方法的返回值,只能通过 WebView 的 loadUrl ()去执行 JS 方法把返回值传递回去,相关的代码如下: // Android:MainActivity.java...("js调用了Android的方法"); // 可以在协议上带有参数并传递到Android上

    6.3K31

    Carson带你学Android:你要的WebView与 JS 交互方式都在这里了

    学习攻略 Carson带你学Android:最全面、最易懂的Webview使用详解 Carson带你学Android:全面总结WebView与 JS 的交互方式 Carson带你学Android:...() 方式1:通过WebView的loadUrl() 实例介绍:点击Android按钮,即调用WebView JS(文本名为javascript)中callJS() 具体使用: 步骤1:将需要调用的JS...Android 4.4 后才可使用 具体使用 // 只需要将第一种方法的loadUrl()换成下面该方法即可 mWebView.evaluateJavascript("javascript:callJS...; // 因为该方法在 Android 4.4 版本才可使用,所以使用时需进行版本判断 if (version < 18) { mWebView.loadUrl("javascript:callJS...如果JS想要得到Android方法的返回值,只能通过 WebView 的 loadUrl ()去执行 JS 方法把返回值传递回去,相关的代码如下: // Android:MainActivity.java

    90120

    Android webview 与 js(Vue) 交互

    二、Android 原生调用 JS 中的方法 Android 调用 JS 有两种方式,都是通过 WebView 的方法: webview.loadUrl() webview.evaluateJavascript...,evaluateJavascript() 可以获取返回值 evaluateJavascript() 在 Android 4.4 之后才可以使用 要实现的效果: 如下图,页面上有一行文字 ”哈哈...“,要在 WebView 页面加载完的时候通过 Android 原生代码将这行字改为 ”我通过原生方法改变了文字“ + Android 传递过来的参数,并给 Android 返回一个字符串 ”js调用成功...三、JS 调用 Android 原生方法 对于JS调用Android代码的方法有3种: 通过 WebView 的 addJavascriptInterface() 进行对象映射 通过 WebViewClient...4. 2 以下存在漏洞;第二种和第三种使用复杂,但不存在漏洞问题。

    10.3K40

    Android:你要的WebView与 JS 交互方式 都在这里了

    Android 4.4 后才可使用 具体使用 // 只需要将第一种方法的loadUrl()换成下面该方法即可 mWebView.evaluateJavascript("javascript:callJS...; // 因为该方法在 Android 4.4 版本才可使用,所以使用时需进行版本判断 if (version < 18) { mWebView.loadUrl("javascript:callJS...特点 优点:使用简单 仅将Android对象和JS对象映射即可 缺点:存在严重的漏洞问题,具体请看文章:你不知道的 Android WebView 使用漏洞 方式2:通过 WebViewClient...如果JS想要得到Android方法的返回值,只能通过 WebView 的 loadUrl ()去执行 JS 方法把返回值传递回去,相关的代码如下: // Android:MainActivity.java...关于WebView的系列文章对你有所帮助 Android开发:最全面、最易懂的Webview详解 Android:你不知道的 WebView 使用漏洞 手把手教你构建 Android WebView

    6.9K31

    Android:你不知道的 WebView 使用漏洞

    上述功能是由 Android的WebView 实现的,但是 WebView 使用过程中存在许多漏洞,容易造成用户数据泄露等等危险,而很多人往往会忽视这个问题 今天我将全面介绍 Android WebView...的使用漏洞 及其修复方式 阅读本文前请先阅读: Android开发:最全面、最易懂的Webview详解 最全面 & 最详细的 Android WebView与JS的交互方式 汇总 ----...ComponentName 或者其他类似方式就可以很轻松的启动该 WebViewActivity 并加载恶意url。...使用 JavaScript(默认是不允许) webView.getSettings().setJavaScriptEnabled(true); // 但很多应用(包括移动浏览器)为了让 WebView...总结 本文主要对Android WebView的使用漏洞及其修复方式进行了全面介绍 关于WebView的系列文章希望对你有所帮助 Android开发:最全面、最易懂的Webview详解 最全面总结

    3.3K20

    Carson带你学Android:你不知道的 WebView 使用漏洞

    前言 现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 上述功能是由 Android的WebView 实现的,但是 WebView 使用过程中存在许多漏洞...,容易造成用户数据泄露等等危险,而很多人往往会忽视这个问题 今天我将全面介绍 Android WebView的使用漏洞 及其修复方式 目录 1....使用 JavaScript(默认是不允许) webView.getSettings().setJavaScriptEnabled(true); // 但很多应用(包括移动浏览器)为了让 WebView...总结 本文主要对Android WebView的使用漏洞及其修复方式进行了全面介绍 Carson带你学WebView系列文章 Carson带你学Android:这是一份全面&详细的WebView学习攻略...Carson带你学Android:最全面、最易懂的Webview使用详解 Carson带你学Android:全面总结WebView与 JS 的交互方式 Carson带你学Android:手把手构建

    1.3K10

    WebView深度学习(三)之WebView的内存泄漏、漏洞以及缓存机制原理和解决方案

    上两篇文章讲到了WebView的基本使用以及Android和js的交互 以及 全面总结WebView遇到的坑及优化 ,这篇文章讲一下内存泄漏和漏洞处理。...WebView 加载页面前加载一段本地的 JS 代码,原理是: 1) 让JS调用一Javascript方法:该方法是通过调用prompt()把JS中的信息(含特定标识,方法名称等)传递到Android...ComponentName 或者其他类似方式就可以很轻松的启动该 WebViewActivity 并加载恶意url。...使用 JavaScript(默认是不允许),但很多应用(包括移动浏览器)为了让 WebView 执行 http 协议中的 JavaScript,都会主动设置为true,不区别对待是非常危险的,如下代码所示...(false); webView.setAllowUniversalAccessFromFileURLs(false); 2)对于需要使用 file 协议的应用,禁止 file 协议加载 JavaScript

    3.1K10

    笔记 | Xamarin

    Android.OS.Environment.ExternalStorageState 属性保存标识外部存储状态的字符串。 此属性会返回表示状态的字符串。...Docs WebView中Settings积累 - 简书 WebView的使用详解 - 知乎 使用Chrome DevTools调试WebView_秦川小将-CSDN博客 Android WebView...arg1=111&arg2=222"; } 缺点: 不能拿到 C# 的返回值, 若 js 想拿到方法的返回值,只能通过 WebView 的 loadUrl 方法去执行 js 方法把返回值传递回去,相关的代码如下...){ alert("result is" + result); } 4.js -> WebView: WebChromeClient 三方法拦截消息 prompt 对话框方法可以返回字符串类型的返回值...Android & iOS Apps with Xamarin | .NET C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码 - 程序员大本营 本文作者: yiyun

    24K20
    领券