GWTP 如何在应用程序上执行代码 initialization/start
GWTP how to execute code on application initialization/start
我想在应用程序启动时对服务器执行异步调用(已加载到用户浏览器中)。
我使用 RestyGWT 与服务器通信。
应用程序启动时,我想调用服务器检查用户是否登录(他的 cookie/token 是否仍然有效)?
如果令牌仍然有效,我想将用户重定向到登录用户的页面。如果不是,我想重定向到 login
页面
我也想为 内部客户端应用程序 urls 工作,例如:http://localhost:8080/cms/#/admin
。当我从应用程序内部输入此 url 时,它起作用了。当我输入此 url 时,它会将我重定向到默认页面。
请帮忙。
这是我的服务执行代码:
service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {
@Override
public void onFailure(Method method, Throwable exception) {
MaterialToast.fireToast("Fail to check is current user logged in " + method + " " + exception.getLocalizedMessage());
}
@Override
public void onSuccess(Method method, Boolean response) {
currentUser.setLoggedIn(response);
getView().setLoginButtonVisbility(response);
}
});
我在 class 构造函数的 AppPresenter 中完成了此操作,但我认为这是错误的。
我认为,如果您移出构造函数并移入 onBind() 方法,应该就足够了。虽然我假设这是在您的演示者中显示在 root 中,而您的其他演示者在 root 演示者插槽中显示。
解决方案是创建自己的 Bootstrapper
class 来实现 com.gwtplatform.mvp.client.Bootstrapper
并在此 class 中执行方法 void onBootstrap()
,我在其中执行 service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {})
然后根据回答结果,重定向到登录或当前位置。
我想在应用程序启动时对服务器执行异步调用(已加载到用户浏览器中)。
我使用 RestyGWT 与服务器通信。
应用程序启动时,我想调用服务器检查用户是否登录(他的 cookie/token 是否仍然有效)?
如果令牌仍然有效,我想将用户重定向到登录用户的页面。如果不是,我想重定向到 login
页面
我也想为 内部客户端应用程序 urls 工作,例如:http://localhost:8080/cms/#/admin
。当我从应用程序内部输入此 url 时,它起作用了。当我输入此 url 时,它会将我重定向到默认页面。
请帮忙。
这是我的服务执行代码:
service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {
@Override
public void onFailure(Method method, Throwable exception) {
MaterialToast.fireToast("Fail to check is current user logged in " + method + " " + exception.getLocalizedMessage());
}
@Override
public void onSuccess(Method method, Boolean response) {
currentUser.setLoggedIn(response);
getView().setLoginButtonVisbility(response);
}
});
我在 class 构造函数的 AppPresenter 中完成了此操作,但我认为这是错误的。
我认为,如果您移出构造函数并移入 onBind() 方法,应该就足够了。虽然我假设这是在您的演示者中显示在 root 中,而您的其他演示者在 root 演示者插槽中显示。
解决方案是创建自己的 Bootstrapper
class 来实现 com.gwtplatform.mvp.client.Bootstrapper
并在此 class 中执行方法 void onBootstrap()
,我在其中执行 service.isCurrentUserLoggedIn(new MethodCallback<Boolean>() {})
然后根据回答结果,重定向到登录或当前位置。