2016-12-15 61 views
2

我們有一個Meteor/Cordova應用程序。開發工作正常,除非部署到實際的iPhone設備。更多的往往不是一對夫婦的行動,導致下面的日誌中的XCode後的應用程序凍結:如何解決Meteor/Cordova iOS應用程序的waitForSyncReply超時問題?

2016-12-15 13:12:43.546614 museumexplorer[738:169260] #WK: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 35 
2016-12-15 13:12:44.554481 museumexplorer[738:169260] #WK: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 36 
2016-12-15 13:12:45.559667 museumexplorer[738:169260] #WK: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 37 
2016-12-15 13:13:06.239664 museumexplorer[738:169260] #WK: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 38 
2016-12-15 13:13:07.248334 museumexplorer[738:169260] #WK: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 39 
2016-12-15 13:13:08.260760 museumexplorer[738:169260] #WK: Connection::waitForSyncReply: Timed-out while waiting for reply, id = 40 

我發現它是與信標功能。如果我註釋掉下面的代碼,凍結不會發生。

cordova.plugins.locationManager.startRangingBeaconsInRegion(beaconRegion) 
    .fail(console.error) 
    .done(); 

我會繼續調查。但如果有人有任何明智的想法,我很樂意聽到它!

的問候, 克里斯

+0

這似乎是當我谷歌 「連接:: waitForSyncReply」 – Chris

+0

資料很少去,此地WebKit的關係。你正在執行什麼操作? – Mikkel

+0

只需瀏覽應用程序。點擊菜單項。它隨機時刻凍結,有時從一開始就凍結。 – Chris

回答

1

顯然爲98個標簡直太多了,至少與JavaScript回調的在科爾多瓦的應用程序的開銷。問題是startRangingBeaconsInRegion被稱爲每個信標。我們改變它爲每個UUID(其中只有2個)調用它。整個應用程序現在感覺更流暢,反應更快!

所以我們更換此:

var beaconRegion = new cordova.plugins.locationManager.BeaconRegion(beacon._id, 
    beacon.uuid, 
    beacon.major, 
    beacon.minor); 

cordova.plugins.locationManager.startRangingBeaconsInRegion(beaconRegion) 
    .fail(console.error) 
    .done(); 

有了這個:

var beaconRegion = new cordova.plugins.locationManager.BeaconRegion('museumexplorerbeacon_' + uuid, 
    uuid); 

cordova.plugins.locationManager.startRangingBeaconsInRegion(beaconRegion) 
    .fail(console.error) 
    .done(); 
+0

這可能是在WebView中運行JavaScript(如Cordova所做的)的速度不夠快。如果儘可能快地在didRangeBeacons回調中創建邏輯,您可能可以使其工作。值得一提的是,在iOS上使用本機代碼時,我已經在iPhone 4S上同時成功測試了幾百個信標,並在測距回調中使用最少的代碼。 – davidgyoung

+0

@davidgyoung即使我們有空的回調,凍結仍然會發生。 – Chris

+0

我使用這個插件觸發了同樣的錯誤,但我使用的是區域監視功能。我在這裏打開了一個問題:https://github.com/petermetz/cordova-plugin-ibeacon/issues/287 – shi11i

相關問題