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

Android - evaluatejavascript用于api之前的版本-级别19

Android - evaluateJavascript用于API之前的版本-级别19

在Android开发中,evaluateJavascript是一个用于执行JavaScript代码的方法。然而,在Android API级别19之前,该方法并不存在。在这个版本之前,我们可以使用WebView的loadUrl方法来执行JavaScript代码。

WebView是Android提供的一个用于展示网页内容的控件,它可以加载HTML页面并执行其中的JavaScript代码。在API级别19之前,我们可以通过调用WebView的loadUrl方法来执行JavaScript代码。

以下是使用loadUrl方法执行JavaScript代码的示例:

代码语言:java
复制
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("javascript:alert('Hello, World!');");

在上述示例中,我们首先获取到WebView的实例,并启用JavaScript支持。然后,通过调用loadUrl方法,将要执行的JavaScript代码作为URL传递给WebView。

需要注意的是,loadUrl方法是在WebView的UI线程中执行的,因此如果要执行耗时的JavaScript操作,可能会导致界面卡顿。为了避免这种情况,可以考虑使用evaluateJavascript方法。

在API级别19及以上的版本中,Android引入了evaluateJavascript方法,它可以在WebView的后台线程中执行JavaScript代码,并通过回调函数返回执行结果。这样可以避免在UI线程中执行耗时的JavaScript操作,提高应用的性能和响应速度。

以下是使用evaluateJavascript方法执行JavaScript代码的示例:

代码语言:java
复制
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.evaluateJavascript("alert('Hello, World!');", new ValueCallback<String>() {
    @Override
    public void onReceiveValue(String value) {
        // 处理JavaScript执行结果
    }
});

在上述示例中,我们首先获取到WebView的实例,并启用JavaScript支持。然后,通过调用evaluateJavascript方法,将要执行的JavaScript代码作为参数传递给WebView,并通过ValueCallback回调函数处理执行结果。

需要注意的是,evaluateJavascript方法是在WebView的后台线程中执行的,因此不能直接在回调函数中更新UI。如果需要更新UI,可以通过Handler或者runOnUiThread方法在主线程中执行相应的操作。

总结:

evaluateJavascript方法是在Android API级别19及以上引入的,用于在WebView的后台线程中执行JavaScript代码,并通过回调函数返回执行结果。在API级别19之前,我们可以使用WebView的loadUrl方法来执行JavaScript代码。使用evaluateJavascript方法可以提高应用的性能和响应速度,避免在UI线程中执行耗时的JavaScript操作。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Facebook推出用于android数据加密开源API

小编吐槽 恶意应用和android手机续航能力一样是令android用户格外头疼一个问题(至少我就这么觉得 – -!)...,Facebook把它使用用于数据加密API开源了,的确是一件不错事情。...不过,facebook开放了一个名叫,“Conceal”安全工具源代码,它提供了密码学Java API接口,这些简单易用接口可以让应用程序以最优方式加密数据, Conceal专门为速度设计...一个更小库,有益于兼容更多android版本,以及减少后期维护成本。”...这个库还提供了存储和管理秘钥资源来提高android脆弱随机数生成器安全性。目前正式支持,2.3以及更高版本。不过也可以在2.2版本运行。

1.2K90
  • Android SDK与API版本对应关系

    经常需要在AndroidManifest.xml中配置sdk号,比如:android:minSdkVersion=”4”,却老记不清SDK与API版本对应关系,查找后总结如下,供以后查看: 第一行为版本命名...,一般都是甜点 第二行为SDK,也就是平常经常说android版本 第三行为API版本,开发者经常用到 AndroidWear(穿戴系统) Android 4.4w - API...Level 20 Lollipop 5.0 API Level 21 下面这段转自: http://www.cnblogs.com/hope250/archive/2011/04/04/2005409....html 有时候需要统计手机型号和版本号,利用程序可以获取到相应手机信息,对比两部手机发现,厂商不同,某个信息显示方式也不尽相同,具体见: String phoneInfo = "Product:..." +android.os.Build.PRODUCT; phoneInfo += ", CPU_ABI: " + android.os.Build.CPU_ABI;

    84010

    ubuntu19系统及以下版本安装android studio教程

    tar.ge是lilnux可以直接解压文件类型 第二步把下载好文件直接解压到下载好目录 鼠标右键单击直接解压到当前位置 第三步安装java和android 使用cp -r指令直把下载好文件复制到...这时在命令行下输入 java -version 可以得到jdk版本信息,如果没有代表安装失败!!!...最后一步打开android studio 下载sdk cd /opt/android/android-studio-ide-191.5900203-linux/android-studio/bin ..../studio.sh 本教程到此结束,因为之前看别人帖子,都是要先安装sdk,但是我试了很多次都没有成功,最后几乎放弃时候在android studiod下面直接安装上了。...总结 以上所述是小编给大家介绍ubuntu19系统及以下版本安装android studio教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

    56311

    Android中判断当前API版本号方法

    Android中由于不同版本API会有一些变化,导致一些较早版本可能不支持新方法,或者某些功能处理过程不太一样,需要判断当前版本然后进行适当处理。 那么,如何判断当前API版本号呢?...例如判断api版本号是否大于等于19: if (Build.VERSION.SDK_INT = Build.VERSION_CODES.KITKAT) {...}...("ro.build.version.sdk", 0); 获取系统属性配置文件中“ro.build.version.sdk”值,该值即为当前设备系统版本号。...在Android源码 frameworks\base\core\java\android\os\Build.java 文件中 Build.VERSION_CODES 类下包含对应各个版本版本号信息。...Android 7.0 */ public static final int N = 24; } 以上这篇Android中判断当前API版本号方法就是小编分享给大家全部内容了,希望能给大家一个参考

    3.1K20

    Android中Java和JavaScript交互

    Android在4.4之前并没有提供直接调用js函数并获取值方法,所以在此之前,常用思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回。...这里展示一个简单交互示例 具有返回值js方法 lineos:false 1 2 3 function getGreetings() { return 1; } java代码时用evaluateJavascript...函数 } }); Uncaught TypeError: Object [object Object] has no method 安全限制问题 如果只在4.2版本以上机器出问题,那么就是系统处于安全限制问题了...@JavascriptInterface代码 lineos:false 1 2 3 public @interface JavascriptInterface { } 代码混淆问题 如果在没有混淆版本运行正常...,在混淆后版本代码运行错误,并提示Uncaught TypeError: Object [object Object] has no method,那就是你没有做混淆例外处理。

    92520

    Google证实下个版本Android将不使用甲骨文Java API

    自有的 Java API 版本。   ...在我们即将发布新版 Android 中,我们计划将 Android Java 语言库迁移至 OpenJDK,以便为开发者们打造一个用于构建应用和服务常见代码库。...Android 提供了某些 Java API 库来支持 Java 变成语言应用开发,这主要分成 2 个部分——面向库 APIs,以及由 Google 开发、能够让库工作起来部署代码。   ...至于 Java “现东家”,甲骨文(Oracle)有两种这些库实现方法——专有的 JDK 版本、以及开源 OpenJDK 版本。   ...Google 希望开发者们会对这一改动感到欣喜,因为这简化了他们构建应用程序时代码(这些 Java API通用代码、而不是多个代码库)。

    1K60

    Android中Java和JavaScript交互

    Android在4.4之前并没有提供直接调用js函数并获取值方法,所以在此之前,常用思路是 java调用js方法,js方法执行完毕,再次调用java代码将值返回。...4.4之后使用evaluateJavascript即可。...这里展示一个简单交互示例 具有返回值js方法 function getGreetings() { return 1; } java代码时用evaluateJavascript方法调用 private...函数 } }); Uncaught TypeError: Object [object Object] has no method 安全限制问题 如果只在4.2版本以上机器出问题,那么就是系统处于安全限制问题了...注,创建@JavascriptInterface代码 public @interface JavascriptInterface { } 代码混淆问题 如果在没有混淆版本运行正常,在混淆后版本代码运行错误

    1.5K60

    Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引用 | 引用队列 | 针对不同 Android 版本开发不同 Bitmap 复用策略 | 工具类代码 )

    2、Android 4.4(API 级别 19)以下版本 2、在 Android 4.4(API 级别 19)及以上版本 四、LruCache 内存缓存、内存复用工具类 1、工具类 2、工具类测试...Bitmap 对象 ---- 根据不同系统版本进行不同处理 : 1、Android 2.3.3(API 级别 10)及以下版本 Android 2.3.3(API 级别 10)及以下版本 : 使用...4.4(API 级别 19)以下版本 : 在 Android 4.4(API 级别 19之前代码中 , 复用前提是必须同时满足以下 3 个条件...4.4(API 级别 19)及以上版本Android 4.4(API 级别 19)及以上版本 : 只要被解码后 Bitmap 对象字节大小 , 小于等于 inBitmap 字节大小 ,...4.4(API 级别 19)以下版本 : 在 Android 4.4(API 级别 19之前代码中 , 复用前提是必须同时满足以下 3 个条件

    2.3K20

    android: API24 及以上版本调用系统相机时报:FileUriExposedException 解决

    ,but , 从 7.0 (API 24) 之后这种方式就有问题了 ,因为 Uri.fromUri(file) 得到是 以“ file:// ” 开头文件在本地真实路径,Android 认为直接将这个真是地址对外暴露是有很多风险...--解决API24 及以上版本调用系统相机时报:FileUriExposedException 情况--> <provider android...之前和之后,FileProvider 是API22推出,所以在API22及以后版本中就可以支持FileProvider,22、23 既可以使用原有的Uri.from(file) 方式也可以使用 FileProvider...= Uri.fromFile(file); } return photoURI; } } (5)、权限申请 对于6.0之后需要在代码中动态申请权限,但是,对于6.0之前版本还是必须要在...文中内容对应其中 b_26_TakePhotoWithSysMethod 安卓 API版本 与 Version 对应关系 https://source.android.com/setup/build-numbers

    66820

    前端工程师所需要了解WebView

    Android WebView Android 4.4前:Android WebView在低版本 & 高版本采用了不同Webkit版本内核(正因为如此,H5很多新特性,在Android版本小于4.4...不过它API却没有很大改动,在兼容低版本同时只引进了少部分新API,并不需要你做很大改动。...webView.loadUrl("javascript:" + javaScriptString); 而 Kitkat 之后版本,也可以用 evaluateJavascript 方法实现:...在 IOS8 之前,苹果手机 WebView 使用 UIWebView,UIWebView长期以来存在某些问题: 加载速度慢 存在内存泄漏 内存占用多,内存优化困难 如果内存占用过多还可能因为占用过多被系统...它代替了 UIKit 中 UIWebView 和 AppKit 中 WebView,提供了统一跨双平台 API

    1.7K10

    android定义新api解决一些低版本不能运行问题

    Android Call requires API level 11 (current min is 8)解决方案 【错误描述】     在用Eclipse开发过程中,为了兼容Android2.2和4.0...就是创建项目时,我们设置了最低版本API Level,比如我是8,因此,Eclipse检查我调用API后,发现版本号不能向低版本兼容,比如我用“Notification.Builder”是Level...如果把manifest文件中user-sdkandroid:minSdkVersion改为报错那个高版本就没事。...比如下面: <uses-sdk         android:minSdkVersion="11"   //这个之前是8         android:targetSdkVersion="17" /...> 【扩展】   这种错误不仅发生在Level11,也同时发生于其他因为设置了最低版本,但使用了高版本API代码中,解决方案应该相同。

    78060

    Android webview 与 js(Vue) 交互

    二、Android 原生调用 JS 中方法 Android 调用 JS 有两种方式,都是通过 WebView 方法: webview.loadUrl() webview.evaluateJavascript...() 二者区别: loadUrl() 会刷新页面,evaluateJavascript() 则不会使页面刷新,所以 evaluateJavascript() 效率更高 loadUrl()...得不到 js 返回值,evaluateJavascript() 可以获取返回值 evaluateJavascript() 在 Android 4.4 之后才可以使用 要实现效果: 如下图...,页面上有一行文字 ”哈哈“,要在 WebView 页面加载完时候通过 Android 原生代码将这行字改为 ”我通过原生方法改变了文字“ + Android 传递过来参数,并给 Android 返回一个字符串...由于目前设备系统版本基本都在 4.2 以上,所以用第一种就可以了,简单快捷。时间有限本文只实现第一种,第二种和第三种就不实现了,想了解可以参考 这篇文章 。

    10.3K40

    Android 内存优化】Bitmap 内存缓存 ( Bitmap 缓存策略 | LruCache 内存缓存 | LruCache 常用操作 | 工具类代码 )

    Android 2.3.3(API 级别 10)及以下版本中 , 使用 Bitmap 对象 recycle 方法回收内存 ; 2 ....Android 3.0(API 级别 11)及以上版本中 , 使用新引入 Bitmap 内存复用机制 , 通过设置 BitmapFactory.Options.inBitmap 字段 , 图像解码时..., 会尝试复用该设置 inBitmap 内存 , 该内存复用有以下限制 : ① Android 4.4(API 级别 19)及以上版本 : 在 Android 4.4(API 级别 19)及以上版本中...可以大于1 ; ② Android 4.4(API 级别 19)以下版本 : 在 Android 4.4(API 级别 19之前代码中 , 复用前提是必须同时满足以下 3 个条件 : 被解码图像必须是...oldValue.recycle(); } }; } /* 下面的 3 个方法是提供给用户用于操作

    2.1K20
    领券