2012-03-12 48 views
17

Tôi đã sử dụng localstorage để lưu một giá trị trong ứng dụng của mình, hoạt động với PhoneGap, nhưng khi Apple phát hành iOS 5.1 mới, Ứng dụng của tôi hiện không lưu giá trị.Phonegap iOS 5.1 và localStorage

Có ai biết cách giải quyết vấn đề này không?

Cảm ơn bạn rất nhiều !!!

Edit: Tôi đặt mã tôi đã sử dụng:

window.localStorage.setItem("login", $('#login').val());

tôi sử dụng nó cho lưu các giá trị, và tôi sử dụng nó cho đọc giá trị:

function onDeviceReady() { 
    var login = window.localStorage.getItem("login"); 

    if (login != null) { 
     $('#login').val(login); 
    } 
} 

Nhưng khi tôi đóng ứng dụng, các giá trị không được lưu.

+0

Bạn có mã nào không? –

+0

Tôi chỉnh sửa bài đăng :) Cảm ơn! – chemitaxis

Trả lời

23

Đã có một chuỗi lớn trong nhóm phonegap đã nói về vấn đề này. Về cơ bản nó là bởi vì bây giờ họ xử lý localStorage như một mục tạm thời có thể bị xóa bất cứ lúc nào. Không bao giờ sợ có những người rất thông minh trong công việc!

đây là thread - https://groups.google.com/forum/?fromgroups#!topic/phonegap/RJC2qA9sDnw

đây là mã - http://pastebin.com/5881768B

+0

Điều này vẫn hoạt động trong PhoneGap 3? –

+1

@ScottC yes. Bản vá đã được thêm vào 3.0 nên bạn không thực sự cần phải làm nhiều nữa. –

8

Trong iOS 5, localStorage đã được thực hiện kiên trì theo mặc định, bởi Apple. Trong iOS 5.1, localstorage được tạo thành một thư mục tạm thời có thể bị xóa bởi hệ điều hành bất kỳ lúc nào bộ nhớ bị hạn chế. Trong iOS 6, localstorage được tạo một thư mục liên tục tùy chọn với cờ trong cài đặt.

Phonegap 2.0 nhắm mục tiêu iOS 5.1 và cung cấp cơ chế plugin để cung cấp sự kiên trì ngay cả khi iOS không.

Với nỗ lực iOS 6 và phonegap 2.1 đã được thực hiện để chỉ sử dụng plugin nếu phiên bản iOS là 5.1 và quay trở lại cơ chế gốc iOS để duy trì thư mục.

Tuy nhiên, có lỗi trong bản sửa lỗi này, trên iOS 6, trong đó thư mục localstorage bị xóa lần đầu tiên, dữ liệu được lưu trữ: https://issues.apache.org/jira/browse/CB-1535 Báo cáo lỗi cũng có bản vá; tuy nhiên nó chưa được lên kế hoạch để trở thành một phần của bất kỳ phiên bản phát hành PhoneGap nào; vì vậy bạn sẽ phải tự áp dụng bản vá.

+0

Vì vậy, điều này có được chấp nhận để sử dụng trong phiên bản PhoneGap mới nhất ngay cả khi người dùng đang sử dụng iOS 5.1 không? LocalStorage sẽ tiếp tục tồn tại với bản vá? – jocull

Các vấn đề liên quan