2013-05-08 136 views
0

我想爲一個用戶使用不同的功能,如收藏夾和約會。我需要在應用程序中登錄數據。但是可以在Tabris框架中使用本地存儲嗎?Tabris本地存儲

回答

0

Tabris有一個名爲ClientStore(RWT.getClient()。getService(ClientStore.class))的客戶端服務來保存設備上的信息。無論如何,建議不要將這些數據保存在設備上。推薦的方法是使用ClientStore存儲令牌,以便在下次打開應用時識別用戶。有了這個令牌,你可以存儲數據,例如在服務器上的數據庫中。 ClientStore可以與Web瀏覽器的Cookie進行比較。你永遠不會在cookie中存儲太多數據。

0

我即將使用ClientStorage。現在我正在用Tabris測試一些東西,我使用了這裏的指南http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/

我測試將ClientStorage對象從值「false」設置爲「true」。但是,每次我退出應用程序並重新進入時,價值都會再次回到「錯誤」狀態。

private void createContent(final UIContext context) { 
    final ClientStore storageLogin = RWT.getClient().getService(ClientStore.class); 
    storageLogin.add("username", "none"); 
    storageLogin.add("passwd", "none"); 
    storageLogin.add("isLoggedIn", "false"); 
    labelUsername = new Label(containerContent, SWT.NONE); 
    labelUsername.setText("Username:"); 
    final Text usernameText = new Text(containerContent, SWT.BORDER); 
    final Label labelPasswd = new Label(containerContent, SWT.NONE); 
    labelPasswd.setText("Password:"); 
    final Text passwdText = new Text(containerContent, SWT.PASSWORD | SWT.BORDER); 
    final Button buttonLogin = new Button(containerContent, SWT.PUSH); 
    if(storageLogin.get("isLoggedIn") == "false"){ 
     buttonLogin.setText("Log in"); 
    } 
    else{ 
     buttonLogin.setText("Logged in!"); 
    } 
    buttonLogin.addSelectionListener(new SelectionListener() { 

     public void widgetSelected(SelectionEvent event) { 
     if(storageLogin.get("isLoggedIn") == "false"){ 
      StringBuilder stringBuilder = new StringBuilder(); 
      stringBuilder.append("Username: " + usernameText.getText() + "\n"); 
      stringBuilder.append("Password: " + passwdText.getText() + "\n"); 
      System.out.println("Stringbuilder: \n" + stringBuilder.toString()); 
      storageLogin.add("username", usernameText.getText()); 
      storageLogin.add("passwd", passwdText.getText()); 
      storageLogin.add("isLoggedIn", "true"); 
      buttonLogin.setText("Logged in!"); 
     } 
     else{ 

     } 

     } 

     public void widgetDefaultSelected(SelectionEvent e) { 
     } 
    }); 

    } 

當然,我不會在任何明文中安全地使用任何密碼,只是在做實驗。 :)

0

我會說這是因爲你執行storageLogin.add(「isLoggedIn」,「false」);每次你訪問應用程序。這將覆蓋傳輸的值並將其存儲回客戶端。我建議只將它設置爲false如果storageLogin.get(「isLoggedIn」);返回null。