gpt4 book ai didi

cordova - 为 Cordova.exec 失败的插件添加功能到 Ripple 模拟器

转载 作者:行者123 更新时间:2023-12-02 10:37:18 28 4
gpt4 key购买 nike

我们正在使用 Cordova 开发一款移动应用程序,其中包含许多插件,并通过 Ripple 模拟器在 Chrome 中进行检查。显然,某些插件使用了 Ripple 未实现的 native 功能,这破坏了 Chrome 中的部分应用程序功能。

问题:如何给Ripple添加模拟器功能?下面显示了我迄今为止所发现的内容以及使其发挥作用所缺少的内容。

在控制台中可以看到如下错误:

missing exec:Keyboard.close
ripple.js:40 TypeError: Cannot read property 'close' of undefined
at ripple.define.module.exports.exec (http://localhost:4428/ripple/assets/ripple.js:40:28665)
at Function.Keyboard.close (http://localhost:4428/plugins/com.ionic.keyboard/www/keyboard.js:14:2)
...

keyboard.js中:

exec = require('cordova/exec');
// Line 14, where from the exception stacktrace
exec(null, null, "Keyboard", "close", []);

通过谷歌搜索,很明显 cordova.exec 是 Javascript 部分和 native 后端之间的连接器。我认为 Ripple 应该取代它,并且确实有一个 bridge.js想必正是这样做的。它甚至还有函数 add(),显然是为了用户提供的模拟器。所以我突然意识到,在我的代码中我应该写一些类似的东西:

var bridge = ripple('platform/cordova/2.0.0/bridge'); 
bridge.add(
    "Keyboard",
    { close: function () {} }
);

唉,ripple 在应用程序范围内未定义。这就是缺失的部分 - 如何访问ripple

最佳答案

我也遇到了这个问题以及我能想到的所有问题 - 更改插件的 www 部分,如下所示:

var exec    = require('cordova/exec');

// --> here is the start of my code

if (exec.toString().indexOf("emulator") > 0) {
exec = emulation;
}

function emulation(success, fail, service, action, args) {
if (action === "add") {
var options = args[0];
alert("Local Notification added: " + options.message);
}
}

// --> the end of my code

对此您有什么想说的吗?

可能有人会说如何避免这个伎俩。 ))

关于cordova - 为 Cordova.exec 失败的插件添加功能到 Ripple 模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27639325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com