Android上的Crosswalk从java调用js函数

2024-03-18

我正在尝试使用人行横道 https://crosswalk-project.org我的 Android 应用程序中的运行时。我在 Android 4+ 上尝试过这个。

我得到了一些 js 和 html 代码,它非常适合我。但它不像 android webview 那样工作。在 webview 中我可以从 java 代码调用 javascript 函数。但我在人行横道上找不到任何选择。任何想法?

Thanks


在 Android Studio 的 app/module/lib 级别的 build.gradle 中,将其添加到依赖项中:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'org.xwalk:xwalk_core_library:12.41.296.5'}

同步项目

创建 xml 布局资源

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<org.xwalk.core.XWalkView
    android:id="@+id/xwalkWebView"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
    />

</LinearLayout>

在 Activity onCreate 中或由其调用

//        Don't know how this helps if the preferences are connected?
XWalkPreferences.setValue("enable-javascript", true);
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);

xWalkView=(XWalkView)findViewById(R.id.xwalkWebView);
xWalkView.addJavascriptInterface(new JS_Bind(this, xWalkView),"Android");

xWalkView.clearCache(true);
xWalkView.load(COM_URL, null);

创建类 JS_Bind:

public class JS_Bind {
    private static final String TAG = "JS_Bind";
    private Context context;
    private XWalkView xWalkWebView;

    public JS_Bind(Context c, XWalkView xWalkWebView) {
        context = c;
        this.xWalkWebView = xWalkWebView;
    }

    @JavascriptInterface
    public void showToast(String toast) {
        Log.d(TAG, "showToast(String toast)");
        Toast.makeText(context, toast, Toast.LENGTH_SHORT).show();
    }
}

在 Web Javascript 中调用该函数:

Android.showToast(toast);

确保导入正确的 xwalk @JavaScripInterface 装饰器而不是标准的 Web 视图装饰器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android上的Crosswalk从java调用js函数 的相关文章

  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 在循环中调用 setTimeout 未按预期工作

    下面的 JavaScript 应该 在我看来 以 0 5 秒的间隔播放一系列音符 但它会将它们全部作为一个同时的和弦来演奏 知道如何修复它吗 function playRecording if notes length gt 0 for v
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • Android模拟器中的网络访问

    我试图通过我的 Android 应用程序访问互联网 但我既成功又失败 我在构建应用程序时启动模拟器 并且应用程序安装得很好 我可以使用浏览器访问互联网 但是 当我尝试这个小代码片段时 InetAddress inet try inet In
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • Android 中的库可以有自己的意图过滤器吗?

    我想开发一个可以包含在其他 Android 应用程序中的库来拦截某些类型的意图 是否可以 我创建了一个库和一个测试项目 两者都有自己的AndroidManifest xml文件 在库的清单中 我为操作 TEST 定义了一个意图过滤器 但是
  • 为什么我的 D3 SVG 图上的轴不会更新?

    I have 简单的 D3 散点图 http www raxacoricofallapatorius com test scattertest html我在显示数据的几个不同属性之间切换 但是虽然我可以更改数据点 并按照我想要的方式进行转换
  • 此版本的 CLI 仅与 Angular 版本 5.0.0 或更高版本兼容错误

    我已经有 Angular 项目在 4 版本中运行 在安装新项目时 不幸的是我安装了 6 版本的 Angular cli 在以 4 版本运行的旧项目中运行 ngserve 命令时 这会引发错误 您的全局 Angular CLI 版本大于本地版
  • 如何将样式应用于我拥有的所有 TextView? [复制]

    这个问题在这里已经有答案了 可能的重复 设计所有 TextView 或自定义视图 的样式 而不向每个 TextView 添加样式属性 https stackoverflow com questions 6801890 styling all
  • 我可以限制分布式应用程序发出的请求吗?

    我的应用程序发出 Web 服务请求 提供商处理的请求有最大速率 因此我需要限制它们 当应用程序在单个服务器上运行时 我曾经在应用程序级别执行此操作 一个对象跟踪到目前为止已发出的请求数量 并在当前请求超出允许的最大负载时等待 现在 我们正在
  • 什么时候可以使用Javascript,什么时候不可以?

    不使用太多 javascript jquery 是个好习惯吗 我们应该尽可能避免它 为了良好的可访问性 吗 什么时候可以使用 JavaScript 什么时候不能在网页设计和开发中使用 JavaScript 在什么场景 什么条件下 Updat
  • 如何处理 StaleElementReferenceException

    我正在为鼠标悬停工作 我想通过使用 for 循环单击每个链接来测试所有链接的工作条件 在我的程序中 迭代进行一次 而对于下一次迭代 它不起作用并显示 StaleElementReferenceException 如果需要 请修改代码 pub
  • Hadoop NoSuchMethodError apache.commons.cli

    我在用着hadoop 2 7 2我用 IntelliJ 做了一个 MapReduce 工作 在我的工作中 我正在使用apache commons cli 1 3 1我把库放在罐子里 当我在 Hadoop 集群上使用 MapReduceJob
  • 源值 1.5 的错误已过时,将在未来版本中删除

    我使用 scala maven plugin 来编译包含 scala 和 java 代码的项目 我已经将源和目标设置为1 7 但不知道为什么maven仍然使用1 5 这是我在 pom xml 中的插件
  • 如何使用 jQuery 过滤 DropDownList 中的选项

    我有 2 个 DropDownList 第一个 DropDownList 有 4 个选项 第二个 DropDownList 有 20 个选项 我想要一个选项value 1在第一个 DropDownList 中选择我在第二个 DropDown
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • Android MulticastSocket.joinGroup 不会触发发送 IGMP 消息

    Code MulticastSocket s new MulticastSocket InetAddress addr InetAddress getByName 230 230 230 1 s joinGroup addr 在 Ubunt
  • 基于 Spring Boot 的测试中的上下文层次结构

    我的 Spring Boot 应用程序是这样启动的 new SpringApplicationBuilder sources ParentCtxConfig class child ChildFirstCtxConfig class sib

随机推荐

  • 如何正确构造获取处理选项命令消息

    EMV Book 3 说 CLA 80INS A8第1页 00P2 00LC 无功数据 处理选项数据对象列表 PDOL 相关数据乐 00 我的 APDU 命令如下所示 80 A8 00 00 0C PDOL 00 其中 PDOL 9F 66
  • Keras TypeError:fit() 缺少 1 个必需的位置参数:'y'

    我的模型格式正确 model Sequential model add Lambda lambda x x 255 0 0 5 input shape 160 320 3 model compile loss mse optimizer a
  • 如何更改文字和背景颜色?

    我希望每个角色都有不同的颜色 例如 cout lt lt Hello world lt lt endl H会是红色的 e会是蓝色的 l会是橙色的 等等 我知道这是可以做到的 我只是不知道它的代码 我想将背景颜色更改为白色 我该怎么做呢 没有
  • 大型 Grails 项目中的集成和单元测试

    由于必须处理模拟对象 因此编写单元测试通常比大型 Grails 项目中的集成测试更复杂 这article https www ibm com developerworks java library j grails10148 甚至建议我们甚
  • 如何让 ReadJson 返回“默认”行为 - 就好像 CanConvert 返回 false

    我已经创建了一个实现JsonConverter CanConvert总是返回 true In ReadJson我有时想只使用 默认 行为 就好像CanConvert返回错误 我的ReadJson从未被调用过 其他各种帖子建议我做以下一些变化
  • 如何使用 VSCode 和多个 java 版本

    我工作的所有公司项目都使用 Java 8 但是我想尝试使用 VSCode for Java 问题是它要求我使用 Java 11 才能使 Java 扩展工作 另外我想开始使用 java 11 做个人项目 现在在路径 windows环境 中 我
  • 获取组的所有成员 - 传递

    是否有对图形 API 的调用可以将组的所有成员返回给我 包括嵌套组的用户 要获取组的所有直接成员 有GetGroupMembers https msdn microsoft com en us library azure ad graph
  • Angular2单元测试-为什么nativeElement有空的CSSStyleDeclaration

    我正在尝试测试一个简单的标头组件 它有一个按钮 当聚焦时 仅使用 css 可见性属性打开一个下拉列表 这是 HTML
  • 将 Glassfish v2 升级到 JPA 2.0?

    我尝试在 Glassfish V2 上将 Hibernate 3 5 5 与 Spring HibernateJpaVendorAdapter 一起使用 但在初始化 Spring 上下文时出现以下异常 java lang NoSuchMet
  • 合并两个表 (CSV) if (表 1 列 A == 表 2 列 A)

    我有两个 CSV 可在 Numbers 或 Excel 中打开 结构如下 word num1 and word num2 如果这两个词相等 就像它们都是 hi 和 hi 我希望它变成 word num1 num2 这是一些图片 就像第一行一
  • 在 LINQ to SQL 中搜索两列?

    我正在尝试在 Visual Studio 中使用 LINQ to SQL 创建一个简单的搜索方法 在我的数据库中 我有字段 名字 和 姓氏 我的搜索字符串是 名称 如何创建一个简单的 LINQ 查询来搜索这两个字段 在普通 SQL 中我会做
  • 访问 Lithium 中的多个模型深层关系

    是否有可能在 Lithium 中访问多个深入关系的模型 例如 我有一个用户模型 class Users extends lithium data Model public validates array public belongsTo a
  • 字节变量上的Python3正则表达式[重复]

    这个问题在这里已经有答案了 我正在尝试对 bytes 变量执行正则表达式替换 但收到错误 sequence item 0 expected a bytes like object str found 这是一个使用 python3 重现问题的
  • 更新 xCode/Xamarin 后,构建时出现 MT5306 错误

    更新我的 Xamarin Xcode 后 我不断收到以下错误 无法创建 fat 文件 请查看构建日志 MT5306 经过一段时间的挣扎 我终于发现打开我的 xCode 并接受新的使用条款为我解决了这个问题 我可以再次构建我的项目 我认为这可
  • 如何使用java编程将一种语言翻译成另一种语言[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在我的项目中 有一个内容部分 用户可以在其中查看四种不同语言的内容 有没有什么办法 我把内容放在一种语言中 并根据用户的选择 我的ja
  • Android 像 Iphone 一样设置启动屏幕(Activity)第 2 部分

    在获得仅调用一次我的启动活动的解决方案后 第1部分问题 https stackoverflow com questions 16163365 android setting up splash screenactivity like iph
  • 每行都有不同的钻取

    我有一份 SSRS 报告 其中包含多个级别的深入研究 数据针对顶级视图进行聚合 但我需要根据其中一列的类型显示不同的向下钻取报告 Eg 表 1 苹果 Name Cost Fuji 1 5 Gala 3 5 表 2 南瓜 Name Cost
  • 如何设置 ListFragment 的 ListView 的样式

    我想保留这些方法 setListShown true setListShownNoAnimation true 但如果我用 onCreateView LayoutInflater inflater ViewGroup container B
  • 使用扫描仪继续读取数字,直到到达换行符

    我想从控制台读取几个数字 我想要做到这一点的方法是让用户输入一系列由空格分隔的数字 代码执行以下操作 Scanner sc new Scanner System in while sc hasNextInt int i sc nextInt
  • Android上的Crosswalk从java调用js函数

    我正在尝试使用人行横道 https crosswalk project org我的 Android 应用程序中的运行时 我在 Android 4 上尝试过这个 我得到了一些 js 和 html 代码 它非常适合我 但它不像 android