我想使用不同的功能,如收藏夹和约会为一个用户。我需要应用程序中的登录数据。但是在Tabris框架中使用本地存储是可能的吗?
发布于 2013-05-21 20:02:09
Tabris有一个名为ClientStore (RWT.getClient().getService( ClientStore.class) )的客户端服务,用于在设备上保存信息。无论如何,不建议将这些数据保存在设备上。推荐的方式是在ClientStore中存储令牌,以便下次打开应用程序时识别用户。使用此令牌,您可以将数据存储在服务器上的数据库中。可以将ClientStore与web浏览器的cookies进行比较。您永远不会在cookie中保存太多数据。
发布于 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“。
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 ) {
}
} );
}当然,我不会在明文中保护任何密码,只是尝试一下。:)
发布于 2013-06-04 03:49:11
我会说这是因为您每次访问应用程序时都会执行storageLogin.add( "isLoggedIn","false");。这将覆盖传输的值,并将其存储回客户端。我建议仅在storageLogin.get( "isLoggedIn“);返回null时才将其设置为false。
https://stackoverflow.com/questions/16442146
复制相似问题