Phonegap touch插件执行UIThread

时间:2014-02-25 11:17:10

标签: ios cordova cordova-plugins

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

但是当我拥有完全相同的JS并在IOS中创建此插件时,IOS本机代码中的exec插件函数仅在我触摸或停止移动手指时执行。因此,当我触摸并开始移动手指时,我可以看到在插件调用之前添加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
}

0 个答案:

没有答案