簡體   English   中英

在PhoneGap iOs App中發生“暫停”事件后,是否可以進行網絡訪問?

[英]Is it possible to have a network access after a “pause” event in PhoneGap iOs App?

當捕獲“ 暫停 ”事件時,我的PhoneGap應用程序需要向服務器發出websocket(以更新連接狀態)消息。

Android的

使用Android設備,使用這段代碼沒有問題:

document.addEventListener("deviceready",function(){
    document.addEventListener("pause", function() {
        socket.emit('changeStatus', 'incative');
    });
    document.addEventListener("resume", function() {
        socket.emit('changeStatus', 'active');
    });
}, false);

IOS

在iOs中,這是一個不同的魚。 確實這里是關於“ 暫停 ”事件的官方PhoneGap文檔:

iOS Quirks

在暫停處理程序中,任何通過Objective-C的調用都不起作用,也不會發生任何交互式調用,如警報。 這意味着您無法調用console.log(及其變體),也無法調用Plugins或PhoneGap API中的任何調用。 這些只會在應用程序恢復時處理(在下一個運行循環中處理)。

當他們說“通過Objective-C的呼叫不起作用”時,他們是在談論使用網絡接入嗎? 實際上,當我在iOs上測試我的應用程序時,當我恢復應用程序時,會發送值為“inactive”的“changeStatus”消息。

這是我的第二個問題: 在捕獲“暫停”事件后,phonegap iOs應用程序是否有可能訪問服務器?

謝謝你的幫助

我不認為這是可能的,因為iOS上存在一些安全問題。 作為替代解決方案,您可以在套接字服務器端運行echo函數,該函數將以特定間隔向該特定用戶連續發送消息。 如果用戶響應該消息,您可以將該用戶視為活動用戶,將其視為非活動用戶。

用戶發送活動狀態也不是一個好習慣。 考慮如果用戶失去連接會發生什么? 你永遠不會知道他是否活躍oleleeping ..因此最好通過ping在服務器端檢查它..

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM