【问题标题】:Injecting Scripts from internal storage to cordova inappbrowser将脚本从内部存储注入到cordova inappbrowser
【发布时间】:2025-11-29 16:00:02
【问题描述】:

我们可以在 Apache Cordova 中使用它来实例化 Inappbrowser:

var ref = window.open('http://apache.org', '_blank', 'location=yes');

非常直接:)

现在,我想在 InAppBrowser 中加载的页面中从本地存储中注入一些脚本。

在cordova的 InAppBrowser.java我找到了这个方法:

private void injectDeferredObject(String source, String jsWrapper)

但不知道如何从 Cordova Api 调用它:(

非常感谢任何帮助。

【问题讨论】:

    标签: javascript cordova phonegap-plugins inappbrowser


    【解决方案1】:

    看起来这是一个相当新的功能,允许使用ref.executeScript(details,callback) 之类的东西。它实际上记录在这里:https://github.com/apache/cordova-docs/blob/master/docs/en/edge/cordova/inappbrowser/inappbrowser.md#executescript 但看起来文档网站尚未更新。

    当前构建的 JavaScript 版本似乎没有这个(只需搜索“executeScript”,你会发现它不存在。看起来你可以尝试构建自己的 JavaScript 副本来测试它,因为存储库中已经存在桥代码:https://github.com/apache/cordova-js/blob/master/lib/common/plugin/InAppBrowser.js#L55 并且正如您所指出的,已经有 Java 代码支持这一点(因此,它至少应该在 Android 上工作。)我不确定测试或支持的效果如何功能尚未完成,因此您可能会遇到一些问题。您应该尝试一下并告诉我们!

    您可以在此处找到构建 JavaScript 的说明:https://github.com/apache/cordova-js

    【讨论】:

    • 这看起来是我现在用 InAppBrowser 能得到的最接近的答案。虽然我已经改变了我的工作流程以实现我手头的目标:)
    • 谢谢,是的,我认为它需要一些黑客才能让它工作。当新版本出来时,我会尝试回来并用一些可行的代码更新我的帖子。
    • 查看 inAppBrowser 下的移动规范测试。那里有将 JavaScript 代码注入网页的测试;我今天刚刚用夜间代码进行了测试(从 gi​​thub 中提取,你可能还不能使用 phonegap.com 的构建版本),它工作正常。在这里查看:github.com/apache/cordova-mobile-spec/blob/master/inappbrowser/…
    最近更新 更多