2013-04-04 69 views
4

我正在開發一個android應用程序,它必須訪問默認瀏覽器本地存儲。該方案是:如何通過本地代碼訪問android瀏覽器的本地存儲

  • 打開Android默認瀏覽器
  • 加載一個頁面(即我已經開發),在瀏覽器的本地存儲
  • 保存一些數據,關閉瀏覽器
  • 打開我的應用程序
  • 該應用程序讀取保存在瀏覽器本地存儲中的數據並將其顯示給用戶

有沒有辦法訪問loca l瀏覽器的存儲?另外如果可能的話,如何訪問設備上其他已安裝瀏覽器的本地存儲?

謝謝!

回答

3

看來,沒有辦法做到這一點。我試圖使用內容提供商訪問瀏覽器的數據,但您只能訪問書籤和歷史記錄。

我也使用WebView而不是瀏覽器做了一些測試。我嘗試兩種方法:

  • 訪問本地存儲數據庫

您可以像訪問正常SQLite數據庫的本地存儲數據庫。數據存儲在具有兩列的單個表格中 - 鍵和值。根據javascript文檔寫入本地存儲是一個同步操作。這很棒!問題是將瀏覽器(webview)中的數據保存到文件系統是異步的。所以如果你寫了一些東西到本地存儲,它會被存儲在內存中,所以它可以通過javascript API訪問,但是它仍然不會被保存到SQLite數據庫中。

  • 通過訪問本地存儲的JavaScript橋

這是我個人的建議!您已創建一個Android JavaScript界面​​並將其添加到webview。通過這種方式,您可以爲JavaScript提供一個API來訪問您的代碼。 要非常小心!這可能是一個嚴重的安全問題!仔細檢查你的代碼!之後,你可以打電話給你的這樣的JavaScript方法webview.loadUrl("javascript://...")

+0

是的,這基本上是答案。如果瀏覽器是單獨的應用程序(例如默認瀏覽器),則只能訪問它提供的幾件事情。如果它是在您的應用程序中運行的WebView,則您有更多選擇,並受到併發性和更新類型問題的限制。 – 2013-05-09 17:32:55

0

我使用SharedPreferences插件來訪問本地存儲,而不是訪問Phonegap內的瀏覽器本地存儲。這可能對一些人有用。 The Github Code

相關問題