Я хочу интегрировать функцию входа в Google+ для своего приложения. Я использовал Google+ sdk, но перенаправляю сафари для входа в Google, я хочу открыть этот веб-диалог в своем приложении. Может ли кто-нибудь помочь мне в этом?Google + вход в приложение
ответ
Я сделал это. Наследуя класс UIApplication, а затем обрабатывая URL-адрес в веб-представлении. Вот код:
Добавить Google+ FrameWork в свой проект.
Теперь, при вызове аутентификации, поймайте этот URL, вставив класс UIAPPLICATION.
- (IBAction)btnGooglePlusTap:(id)sender
{
[[GPPSignIn sharedInstance] authenticate];
}
SubClassUIApplication.h
#import <UIKit/UIKit.h>
#define ApplicationOpenGoogleAuthNotification @"GoogleFriendInvitationPosted"
@interface SubClassUIApplication : UIApplication
@end
#import "SubClassUIApplication.h"
@implementation SubClassUIApplication
- (BOOL)openURL:(NSURL *)url
{
if([[url absoluteString] hasPrefix:@"googlechrome-x-callback:"])
{
return NO;//This will prevent call to Google Chrome App if installed.
}
else if([[url absoluteString] hasPrefix:@"https://accounts.google.com/o/oauth2/auth"])
{
[[NSNotificationCenter defaultCenter] postNotificationName:ApplicationOpenGoogleAuthNotification object:url];
return NO;// Here we will pass URL to notification and from notification observer , we will load web view.
}
else if ([[url absoluteString] hasPrefix:@"com.google"])
{
return NO;
}
return [super openURL:url];
}
@end
Задайте этот подкласс как основной класс в файле info.plist.
Теперь откройте URL для веб-просмотра
- (void)catchNotificationforGooglePlusSharing:(NSNotification *)notiofication
{
NSURL *u=(NSURL *)notiofication.object;
UINavigationController *navWebView =(UINavigationController *) [self.storyboard instantiateViewControllerWithIdentifier:@"WebViewNavController"];
WebViewController *vcWebView = navWebView.viewControllers[0];
vcWebView.webURL = u;
[self.navigationController presentViewController:navWebView animated:YES completion:Nil];
}
Сейчас в webviewcontroller.m
- (void)viewDidLoad
{
[super viewDidLoad];
NSURLRequest *req= [[NSURLRequest alloc]initWithURL:webURL];
[webvGoogle loadRequest:req];
}
#pragma mark - UIWebViewDelegate method
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
BOOL canHandle = [GPPURLHandler handleURL:request.URL sourceApplication:@"com.apple.mobilesafari" annotation:nil];
if(canHandle == YES)
{
[self dismissViewControllerAnimated:YES completion:^
{
}];
}
return YES;
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
NSLog(@"Error in loading : %@",error.description);
}
Не забудьте зарегистрировать свой класс для уведомления ApplicationOpenGoogleAuthNotification.
Вы можете использовать GTMOAuth2ViewControllerTouch от Google Toolbox for Mac - OAuth 2 Controllers.
#import <GTMOAuth2ViewControllerTouch.h>
GTMOAuth2ViewControllerTouch *googleAuthViewController = [[GTMOAuth2ViewControllerTouch alloc]
initWithScope:@"https://www.googleapis.com/auth/userinfo#email"
clientID:kClientId
clientSecret:kSecretId
keychainItemName:@"GooglePlus_Sample_App"
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
[self.navigationController pushViewController:googleAuthViewController animated:YES];
Это образец здесь http://blog.krzyzanowskim.com/2015/02/22/google-sign-on-with-1password/, где вы можете найти полный образец проекта.
У меня есть авторизация с моей стороны из веб-браузера, такая же концепция, как это ... и она работает как шарм, а также помогает мне принять решение о том, хочу ли я открыть какой-либо URL-адрес в приложении или в сафари. Но спасибо за ваш ответ. – vivek
- 1. Google Вход в приложение Cordova
- 2. Вход с помощью Google + в мое приложение
- 3. Упакованное приложение Chrome - автоматический вход в Google?
- 4. Google продолжает блокировать вход в наш приложение
- 5. Вход в Google через приложение iOS
- 6. Ионное приложение auth0 Вход в Google с использованием приложения Google+
- 7. Вход с заменой Google на вход в Google+?
- 8. Вход в приложение с RSpec
- 9. Вход в приложение многопоточность
- 10. Вход в приложение Winform
- 11. Вход в приложение iOS
- 12. Вход в Google из Fragment не возвращается в приложение
- 13. Вход в Google не возвращается в мое приложение
- 14. Google + вход
- 15. Google InAppBilling Проверка подписки на вход в приложение
- 16. Вход для Android в мое приложение с учетными данными google
- 17. Вход в стеклянную сенсорную панель Google через Android-приложение?
- 18. Android Google + Вход в приложение imeadiatly перестает работать
- 19. Facebook Вход в приложение Google App Engine (php)
- 20. Приложение для Android: вход в систему с использованием идентификатора Google?
- 21. Как мне выполнить вход google/facebook в мое приложение?
- 22. IOS приложение падает, когда я нажимаю Вход в Google кнопке
- 23. Как я могу интегрировать вход google в мое приложение? Python
- 24. Google+ вход в состояние сеанса
- 25. Как выполнить вход в Google+
- 26. Вход в Google+ с Turbolinks
- 27. Google Аутентификация в Google+ Вход в систему
- 28. Пользовательские Google+ Вход Баттона
- 29. Facebook вход в систему - Android-приложение
- 30. Многопользовательский вход в winforms приложение
удалить схему URL в plist –
@ Anbu.Karthik не работает ... он перенаправится на goole +, но не вернется в наше приложение, удалив схему URL – vivek
Это не поддерживается SDK. – Steve