0

我正在为 Phonegap 制作一个自定义插件。在 Android 中一切正常。该exec函数立即执行 Phonegap Java 代码。这一切都很好,因为我的数据是实时发送到我的计算机的。

但是当我有完全相同的 JS 并在 IOS 中创建了这个插件时exec,IOS 原生代码中的插件功能只有在我触摸结束或停止移动手指时才会执行。因此,当我 touchstart 并开始移动手指时,我可以看到该exec函数是通过console.log在插件调用之前添加来调用的。但是当我在我的插件 IOS 代码中设置断点时,它会在我停止移动手指或触摸端时调用。当我停止移动手指时,所有对本机代码的调用都会一个接一个地执行。

这意味着当我使用 UIThread 时,不会调用插件 IOS 代码。有什么解决方案吗?因此,Phonegap RunInBackground 函数没有用,因为我们从来没有得到同时移动我的手指。使用 JS Worker 的 Als 似乎没有帮助。

Javascript:

WifiInfo.prototype.setColor = function(mac, groupnr, angle, success, fail) {
    console.log("START SENDING"); // This does work
    cordova.exec(success, fail, 'WifiInfoPlugin', "send", ["setColor", angle == -1 ? angle : Device.colorAngleToDevice(angle), mac, groupnr ] );
};

IOS:

- (void)send:(CDVInvokedUrlCommand*)command
{
    // Code here. Made a breakpoint. The console.log above is executed. But the breakpoint
    // over here is not called. It is called when I stop moving my finger
    // or touchend
}
4

0 回答 0