2011-01-05 20 views
6

Tôi đang làm việc trên Ứng dụng iPhone bằng điện thoại GAP. Trong ứng dụng của tôi, chúng tôi đang sử dụng một DB bên ngoài. Đăng nhập người dùng bằng dịch vụ web, tôi cần lưu trữ ID người dùng sau khi đăng nhập. tôi có thể sử dụng điện thoại GAP Session Storage cho việc này không?Phone GAP SessionStorage

Bất kỳ ai biết hãy giúp.

Cảm ơn, Đồng hành.

Trả lời

12

Bạn thực sự không có khái niệm "phiên" trong PhoneGap - bạn có HTML5 localStorage để lưu trữ dữ liệu liên tục (nghĩ "phạm vi ứng dụng"):

var userId = localStorage.getItem("userId"); 
if (userId==null || userId==0) { 
    jQT.goTo("#login"); 
} 

sử dụng Đăng nhập:

$('#btnLogin').click(function(){ 
$("#loginFailure").hide(); 
$.getJSON(svcUri + "authenticate.cfm?username="+$("#username").val()+"&password="+$("#password").val() + "&callback=?",function(data) { 
    localStorage.setItem("userId",data.userid); 
    userId = data.userid; 
    if (data.userid != 0) { 
    // do some tasks after logging in 
    jQT.goTo('#travelz'); 
    } else { 
    $("#loginFailure").show(); 
    } 
    }); 
return false; 

});

+0

bằng yêu cầu GET không phải là cách để đăng nhập. Nó quá dễ bị tổn thương. Thay vào đó, hãy sử dụng yêu cầu POST, qua SSL để an toàn. – baklap

+0

"Bạn thực sự không có khái niệm" phiên "trong Phonegap" - điều này không đúng –

3

Bạn có thể thử lawnchair để lưu trữ dữ liệu dưới dạng JSON.

+0

Lợi ích phụ của việc này là bạn có thể dễ dàng chuyển sang các nền tảng PhoneGap khác mà không nhất thiết phải hỗ trợ một cơ chế lưu trữ ngoại tuyến cụ thể. Đề xuất của Kris dưới đây là chính xác (tôi đã bỏ phiếu!) Nhưng giải pháp mạnh mẽ hơn là sử dụng Lawnchair để sử dụng trong tương lai ứng dụng trên các nền tảng khác. –

+0

liên kết ghế sofa bị hỏng – botbot

9

Xe lăn có thể quá mức cần thiết để lưu trữ và ID, chỉ cần sử dụng HTML5 local storage.

0

một khái niệm về SessionStorage. Nó hoạt động theo cách tương tự như localStorage, nhưng bị xóa mỗi khi bạn đóng ứng dụng

var keyName = window.sessionStorage.key(0); //Get key name 
window.sessionStorage.setItem("key", "value"); //Set item 
var value = window.sessionStorage.getItem("key");// Get item 
window.sessionStorage.removeItem("key"); //Remove Item 
window.sessionStorage.clear();//Clear storage 
0

Bạn có thể thiết lập lưu trữ phiên như thế

var userid = 10; 
sessionStorage.setItem('UserId',userid); 

Bạn sẽ nhận được biến phiên này như thế

var data = sessionStorage.getItem('UserId'); 

Lưu ý: Biến này sẽ đặt lại sau khi đóng ứng dụng nhưng nếu bạn muốn lưu trên localstorage thì bạn cần hàm localStorage sẽ không đặt lại sau khi đóng ứng dụng