我的 cn1 应用程序包含使用 Facebook 和 Google+ 登录。当在 Iphone 上调用 doLogn() 时,会打开一个 Safari 页面,允许用户分别输入他们的 Facebook 或 Google 凭据。我面临的问题是我的应用程序刚刚被苹果拒绝,因为用户被带出应用程序并进入 safari 以便使用 Facebook 或 Google 登录,据苹果公司称,这提供了“糟糕的用户体验”。Apple 建议我使用 Safari View Controller API,它允许显示 URL 并从应用程序中的嵌入式浏览器检查证书,以便客户可以验证网页 URL 和 SSL 证书,以确认他们正在将登录凭据输入到一个合法的页面。
我注意到 Codename one 有一个 WebView 组件。但是,当我调用 doLogin() 时,我不确定是否可以在 Webview 而不是 Safari 中打开 url。如果是。我如何实现这一点,Web View 是正确的组件吗?或者我是否需要使用 Safari View Controller API,如果需要,我如何将此 api 添加到我的 cn1 项目中,甚至可能吗?
我建议 codenameone 将其合并到他们的 Facebook 和 Google 登录功能中,以防止任何未来的用户被应用商店拒绝。
这似乎在 Native Iphone 应用程序上自动发生 -通过 iOS 9 登录到 FB 时打开 Safari 网络视图。对于 IOS,我应该尝试实现原生 Facebook 登录吗?如果是这样。我从哪说起呢?
final Login fb = FacebookConnect.getInstance();
fb.setClientId("XXXXXXXXXXXXXX");
fb.setClientSecret("XXXXXXXXXXXXX");
fb.setRedirectURI("http://www.mibrandapp.com");
FaceBookAccess.setPermissions(new String[]{"id", "name", "first_name", "last_name"});
fb.setScope("id");
fb.setCallback(new LoginCallback() {
@Override
public void loginFailed(String errorMessage) {
Dialog dg = new Dialog();
dg.setTitle("Login failed");
dg.show();
}
@Override
public void loginSuccessful() {
....
}
});
//fb.doLogin();
fb.nativelogin();