【发布时间】:2019-07-13 04:51:08
【问题描述】:
我在 Codename One 中开发了一个应用程序。在模拟器中,该应用程序可在 iPhone 和 Android 手机上运行。现在我在手机上安装了该应用程序。它可以在不同的 Android 手机上完美运行。然后我将它安装在 iPhone 上。我可以安装它,但随后我尝试启动应用程序并出现一个加载屏幕,它只是在加载,没有其他任何反应。
我没有对init(Object) 方法进行太多更改。我刚刚添加
if (Display.getInstance().canForceOrientation()) {
Display.getInstance().lockOrientation(true);
}.
在start() 方法中,我为 OAuth2 登录创建了登录类的对象,然后将必要的数据(Oauth2 URL、重定向 URI、客户端 ID、客户端密码)添加到该对象。然后我调用doLogin() 方法。我将我的代码包装在 try/catch() 中,但它并没有改变任何东西。
try {
Login login = new Login() {
@Override
public boolean isNativeLoginSupported() {
return false;
}
@Override
protected boolean validateToken(String token) {
return false;
}
};
login.setOauth2URL(URL_LOGIN);
login.setRedirectURI(URL_REDIRECT);
login.setClientId(CLIENTID);
login.setClientSecret(CLIENT_SECRET);
login.setCallback(new LoginCallback() {
@Override
public void loginSuccessful() {
WelcomeForm.getInstance().show();
}
@Override
public void loginFailed(String errorMessage) {
}
});
login.doLogin();
} catch (Throwable t) {
Log.e(t);
Form error = new Form("Errror", new BorderLayout());
TextArea txt = new TextArea(t.toString());
error.add(CENTER, txt);
error.show();
}
【问题讨论】:
-
出了点问题,我猜,到目前为止你是如何调试你的应用程序的?你看到了什么?
-
您在
init(Object)和start()方法中做了什么?您是否在其中一个中显示Dialog?如果是这样,那可能是个问题 -
@holex 还没调试app,今天调试一下,因为我没有Mac
-
@ShaiAlmog 我没有在其中一种方法中显示对话框。
-
我猜你的 oauth 代码在 iOS 上触发了异常。我建议注释掉代码,直到您可以缩小异常的来源。
标签: ios codenameone loading