我正在为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
}