2014-11-05 74 views
1

我有一個基於cordova的應用程序,可在Android,iOS和Windows Phone上運行。我的應用程序的起點是index.html頁面,該頁面不僅會在應用程序啓動時加載,還可以從應用程序內部重定向到該頁面。Cordova - 檢查應用程序是否剛剛啓動

我想執行一些代碼當且僅當應用程序剛剛啓動(所以當index.html第一次顯示時),而不是如果它被重定向到它。我嘗試使用在會話結束時過期的cookie,但cordova不適用於cookie。

另外我不想使用會話存儲,因爲一些較舊的Android(以及Internet Explorer)無法處理此問題。

我用科爾多瓦的版本是4.0.0

編輯:

我忘了提,它不是一個單頁的應用程序,但我用可以訪問多個頁面,所以deviceready事件是不行的,因爲它會每次都被解僱我訪問的index.html頁

+0

當用戶被重定向到index.html時,是否加載了index.html的新實例,或者它是否簡單地返回到在應用程序啓動時加載的實例? – LeedsEbooks 2014-11-05 15:03:05

+0

要麼你可以使用localstorage或sqlite數據庫來存儲一些值,並檢查應用程序是否已經開始在這個scnerio – 2014-11-05 15:13:49

回答

1

嘗試水木清華這樣的:

function documentReady() { 
   document.addEventListener("deviceready", handleDeviceReady, false); 
} 
  
function handleDeviceReady(event) { 
   //cordova api is ready for use 
    if (!localStorage.getItem('alreadyStarted')) { 
     // App just started! 
     localStorage.setItem('alreadyStarted', true); 
    } 
} 

UPD。還需要在第一次啓動時設置標誌(即會話中的alreadyStarted = true或LocalStorage),稍後在handleDeviceReady()中檢查它。

+0

每當我到達頁面時觸發Deviceready,不僅是第一次 – puchmu 2014-11-05 13:57:15

+0

@puchmu看** UPD * *部分 – makhov 2014-11-05 14:02:05

+0

我在問題中寫道我不能使用會話存儲... – puchmu 2014-11-05 14:04:16

相關問題