Ios Libgdx-无法通过Google登录RoboPods使用Web视图登录
我正在使用LibGDX和Eclipse设置。我已经成功地使用robopods 1.14.0登录,但是这种方法是通过Safari Web浏览器实现的,而不是Web视图,这使得它毫无意义 我已经做了几次尝试来解决这个问题,并参考了其他各种帖子,到目前为止似乎没有任何效果 在我的IOS Launcher类中,我有:Ios Libgdx-无法通过Google登录RoboPods使用Web视图登录,ios,libgdx,robovm,Ios,Libgdx,Robovm,我正在使用LibGDX和Eclipse设置。我已经成功地使用robopods 1.14.0登录,但是这种方法是通过Safari Web浏览器实现的,而不是Web视图,这使得它毫无意义 我已经做了几次尝试来解决这个问题,并参考了其他各种帖子,到目前为止似乎没有任何效果 在我的IOS Launcher类中,我有: public class IOSLauncher extends IOSApplication.Delegate { private GADBannerView bannerVi
public class IOSLauncher extends IOSApplication.Delegate {
private GADBannerView bannerView;
private ViewController viewController;
@Override
protected IOSApplication createApplication() {
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
return new IOSApplication(new example(new ViewController()), config);
}
public static void main(String[] argv) {
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(argv, null, IOSLauncher.class);
pool.close();
}
@Override
public boolean didFinishLaunching(UIApplication application,
UIApplicationLaunchOptions launchOptions) {
// TODO Auto-generated method stub
boolean b = super.didFinishLaunching(application, launchOptions);
Foundation.log("IOSLauncher didFinishLaunching()");
try {
viewController = new ViewController();
GIDSignIn.getSharedInstance().setAllowsSignInWithWebView(true);
viewController.signIn();
} catch (Exception e) {
Foundation.log("Error configuring the Google context: " + e);
}
return b;
}
@Override
public boolean openURL(UIApplication application, NSURL url, String sourceApplication, NSPropertyList annotation) {
return GIDSignIn.getSharedInstance().handleURL(url, sourceApplication, annotation);
}
}
public ViewController() {
GPGManager.getSharedInstance().setStatusDelegate(new GPGStatusDelegateAdapter() {
@Override
public void didFinishGamesSignIn(NSError error) {
Foundation.log("didFinishGamesSignIn(" + error + ")");
}
@Override
public void didFinishGamesSignOut(NSError error) {
Foundation.log("didFinishGamesSignOut(" + error + ")");
}
@Override
public void didFinishGoogleAuth(NSError error) {
Foundation.log("didFinishGoogleAuth(" + error + ")");
}
@Override
public boolean shouldReauthenticate(NSError error) {
Foundation.log("shouldReauthenticate(" + error + ")");
return false;
}
@Override
public void willReauthenticate(NSError error) {
Foundation.log("willReauthenticate(" + error + ")");
}
@Override
public void didDisconnect(NSError error) {
Foundation.log("didDisconnect(" + error + ")");
}
});
GIDSignIn.getSharedInstance().setAllowsSignInWithWebView(true);
GIDSignIn.getSharedInstance().setUiDelegate(new GIDSignInUIDelegateAdapter() {
@Override
public void willDispatch(GIDSignIn signIn, NSError error) {
Foundation.log("willDispatch()");
}
@Override
public void presentViewController(GIDSignIn signIn, UIViewController viewController) {
Foundation.log("presentViewController()");
UIApplication.getSharedApplication().getKeyWindow().getRootViewController()
.presentViewController(viewController, true, null);
}
@Override
public void dismissViewController(GIDSignIn signIn, UIViewController viewController) {
Foundation.log("dismissViewController()");
viewController.dismissViewController(true, null);
}
});
}
在我的ViewController类中,我有:
public class IOSLauncher extends IOSApplication.Delegate {
private GADBannerView bannerView;
private ViewController viewController;
@Override
protected IOSApplication createApplication() {
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
return new IOSApplication(new example(new ViewController()), config);
}
public static void main(String[] argv) {
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(argv, null, IOSLauncher.class);
pool.close();
}
@Override
public boolean didFinishLaunching(UIApplication application,
UIApplicationLaunchOptions launchOptions) {
// TODO Auto-generated method stub
boolean b = super.didFinishLaunching(application, launchOptions);
Foundation.log("IOSLauncher didFinishLaunching()");
try {
viewController = new ViewController();
GIDSignIn.getSharedInstance().setAllowsSignInWithWebView(true);
viewController.signIn();
} catch (Exception e) {
Foundation.log("Error configuring the Google context: " + e);
}
return b;
}
@Override
public boolean openURL(UIApplication application, NSURL url, String sourceApplication, NSPropertyList annotation) {
return GIDSignIn.getSharedInstance().handleURL(url, sourceApplication, annotation);
}
}
public ViewController() {
GPGManager.getSharedInstance().setStatusDelegate(new GPGStatusDelegateAdapter() {
@Override
public void didFinishGamesSignIn(NSError error) {
Foundation.log("didFinishGamesSignIn(" + error + ")");
}
@Override
public void didFinishGamesSignOut(NSError error) {
Foundation.log("didFinishGamesSignOut(" + error + ")");
}
@Override
public void didFinishGoogleAuth(NSError error) {
Foundation.log("didFinishGoogleAuth(" + error + ")");
}
@Override
public boolean shouldReauthenticate(NSError error) {
Foundation.log("shouldReauthenticate(" + error + ")");
return false;
}
@Override
public void willReauthenticate(NSError error) {
Foundation.log("willReauthenticate(" + error + ")");
}
@Override
public void didDisconnect(NSError error) {
Foundation.log("didDisconnect(" + error + ")");
}
});
GIDSignIn.getSharedInstance().setAllowsSignInWithWebView(true);
GIDSignIn.getSharedInstance().setUiDelegate(new GIDSignInUIDelegateAdapter() {
@Override
public void willDispatch(GIDSignIn signIn, NSError error) {
Foundation.log("willDispatch()");
}
@Override
public void presentViewController(GIDSignIn signIn, UIViewController viewController) {
Foundation.log("presentViewController()");
UIApplication.getSharedApplication().getKeyWindow().getRootViewController()
.presentViewController(viewController, true, null);
}
@Override
public void dismissViewController(GIDSignIn signIn, UIViewController viewController) {
Foundation.log("dismissViewController()");
viewController.dismissViewController(true, null);
}
});
}
我的信息文件有:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.example.game</string>
<key>CFBundleURLSchemes</key>
<array>
<string>com.example.game</string>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.googleusercontent.apps.175333595465-123456789</string>
<key>CFBundleURLSchemes</key>
<array>
<string>com.example.game</string>
<string>com.googleusercontent.apps.123456789</string>
</array>
</dict>
</array>
我还在我的资源文件夹中设置了GoogleService-info.plist配置文件
我正在使用最新的Google登录SDK,即3_0_0,我正在使用Google plus iOS SDK 1.7.1
如前所述,一切正常,因为我可以登录,但通过Safari网络浏览器,而不是WebView,这使得它毫无用处,因为这样我的应用程序就不会得到苹果的批准。我遗漏了什么吗