首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tabris本地存储

Tabris本地存储
EN

Stack Overflow用户
提问于 2013-05-08 21:34:30
回答 3查看 197关注 0票数 0

我想使用不同的功能,如收藏夹和约会为一个用户。我需要应用程序中的登录数据。但是在Tabris框架中使用本地存储是可能的吗?

EN

回答 3

Stack Overflow用户

发布于 2013-05-21 20:02:09

Tabris有一个名为ClientStore (RWT.getClient().getService( ClientStore.class) )的客户端服务,用于在设备上保存信息。无论如何,不建议将这些数据保存在设备上。推荐的方式是在ClientStore中存储令牌,以便下次打开应用程序时识别用户。使用此令牌,您可以将数据存储在服务器上的数据库中。可以将ClientStore与web浏览器的cookies进行比较。您永远不会在cookie中保存太多数据。

票数 0
EN

Stack Overflow用户

发布于 2013-06-04 03:40:17

我也要用ClientStorage了。现在,我正在使用Tabris测试一些东西,我使用了这里的http://eclipsesource.com/blogs/2013/02/18/tabris-0-11-0-new-noteworthy/指南。

我正在测试将一个ClientStorage对象从"false“值设置为"true”。但每次我退出应用程序并重新进入时,值又回到了"false“。

代码语言:javascript
复制
 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
EN

Stack Overflow用户

发布于 2013-06-04 03:49:11

我会说这是因为您每次访问应用程序时都会执行storageLogin.add( "isLoggedIn","false");。这将覆盖传输的值,并将其存储回客户端。我建议仅在storageLogin.get( "isLoggedIn“);返回null时才将其设置为false。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16442146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档