eliminar - Agregar el botón Me gusta de Facebook en una aplicación de iPhone
eliminar aplicaciones iphone 7 (11)
Aquí tienes - w el código fuente ... disfruta - y deja un comentario si es útil.
http://nowbranded.com/blog/adding-a-facebook-like-button-to-an-iphone-application/
¿Alguien sabe cómo incluiría un "botón me gusta" de facbeook en una aplicación de iPhone? Intenté llamar al iframe dentro de UIWebView
pero eso no funciona.
Es una vieja pregunta, pero acabamos de recibir la respuesta
Al usar fb sdk ahora, simplemente podemos agregar el botón "Me gusta"
FBLikeControl *likeButton = [[FBLikeControl alloc] init];
like.objectID = @"http://ihackthati.wordpress.com/photo1/";
[self addSubview:like];
Facebook ha actualizado recientemente su marco de iPhone Facebook Connect para trabajar con Graph API. Esta es la API que necesita para "Me gusta" los objetos en Facebook.
Fb like Widget se puede integrar en nuestra aplicación. Solo tiene que agregar una vista web y obtener aquí el código / URL html de Fb Like Widget .
en ViewController.h donde desea agregar el botón fb like:
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController <UIWebViewDelegate>
@property (strong, nonatomic) UIWebView * fbLikeWebView;
-(void)embedFBLikeButton;
@end
en TestViewController.m
#import "AboutUsViewController.h"
@implementation AboutUsViewController
@synthesize fbLikeWebView = _fbLikeWebView;
- (void)viewDidLoad
{
[super viewDidLoad];
//Add this code for FbLike Webview
self.fbLikeWebView = [[UIWebView alloc] initWithFrame: CGRectMake(100.0, 50.0, 55.0, 70.0)];
_fbLikeWebView.opaque = NO;
_fbLikeWebView.backgroundColor = [UIColor clearColor];
_fbLikeWebView.delegate = self;
[self.view addSubview:_fbLikeWebView];
for (UIScrollView *subview in _fbLikeWebView.subviews)
{
if ([subview isKindOfClass:[UIScrollView class]]) {
subview.scrollEnabled = NO;
subview.bounces = NO;
}
}
}
luego, en el método ViewWillAppear llama al método enbeddFBLikeButton para agregar el botón fbLike wigdet en la vista web:
-(void)viewWillAppear:(BOOL)animated
{
[self embedFBLikeButton];
[_fbLikeWebView reload];
}
-(void)embedFBLikeButton
{
NSString *facebookUrl = //here paste the url you get from fb developer link above;
[self.fbLikeWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:facebookUrl]]];
}
Usted se ajusta a UIWebViewDelegate ahora es su turno para definir el método de delegado aquí:
#pragma mark - WebView Delgate Methods
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ([request.URL.lastPathComponent isEqualToString:@"login.php"])
{
[self login];
return NO;
}
return YES;
}
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[_fbLikeWebView stopLoading];
}
Este método para iniciar sesión en el usuario a la cuenta de Facebook:
- (void)login
{
[FBSession setActiveSession: [[FBSession alloc] initWithPermissions:@[@"publish_actions", @"publish_stream", @"user_photos"]]];
[[FBSession activeSession] openWithBehavior: FBSessionLoginBehaviorForcingWebView completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
switch (status) {
case FBSessionStateOpen:
// call the legacy session delegate
//Now the session is open do corresponding UI changes
if (session.isOpen) {
FBRequest *me = [FBRequest requestForMe];
[me startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary<FBGraphUser> *my,
NSError *error) {
if (!my) {
NSLog(@"Facebook error:/n%@", error.description);
[[[UIAlertView alloc] initWithTitle: @"Error"
message: @"Facebook Login error."
delegate: self
cancelButtonTitle: @"Ok"
otherButtonTitles: nil, nil] show];
return;
}
}];
[_fbLikeWebView reload];
[[[UIAlertView alloc] initWithTitle: @""
message: @"Successfully Login. Please click on like button"
delegate: self
cancelButtonTitle: @"Ok"
otherButtonTitles: nil, nil] show];
}
break;
case FBSessionStateClosedLoginFailed:
{
[_fbLikeWebView reload];
}
break;
default:
break; // so we do nothing in response to those state transitions
}
}];
}
Mira este bonito código: http://angelolloqui.blogspot.com/2010/11/facebook-like-button-on-ios.html
Agregue la clase FBLikeButton
a su vista:
FBLikeButton *likeButton = [[FBLikeButton alloc] initWithFrame:CGRectMake(0, 372, 320, 44)
andUrl:@"http://www.facebook.com/pages/De-Zilk/108209735867960"];
Muchas gracias Angel García Olloqui
EDITAR: Es bueno agregar ... Para puntos de bonificación:
Si usa el método anterior, la página web no está bien formateada para un iPhone. Lo que puedes hacer es ejecutar un código JavaScript para eliminar todos los divs molestos. Usa esto (oración larga):
[_webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"javascript:document.getElementsByClassName(''uiButton'')[2].style.visibility=''hidden'';var child1 = document.getElementById(''standard_status'');var parent1 = document.getElementById(''login_form'');parent1.removeChild(child1);var child2 = document.getElementById(''pageheader'');var parent2 = document.getElementById(''booklet'');parent2.removeChild(child2);document.getElementById(''loginform'').style.width = ''200px'';var child3 = document.getElementById(''reg_btn_link'');var parent3 = document.getElementsByClassName(''register_link'')[0];parent3.removeChild(child3);var child4 = document.getElementById(''signup_area'');var parent4 = document.getElementById(''login_form'');parent4.removeChild(child4);var child5 = document.getElementsByClassName(''mbm'')[0];var parent5 = document.getElementById(''loginform'');parent5.removeChild(child5);var child6 = document.getElementsByClassName(''reset_password form_row'')[0];var parent6 = document.getElementById(''loginform'');parent6.removeChild(child6);var child7 = document.getElementsByClassName(''persistent'')[0];var parent7 = document.getElementById(''loginform'');parent7.removeChild(child7);"]];
Puede colocarlo en el método de delegado webViewDidFinishLoad
de la clase FBDialog
Facebook.
Primero compruebe su autenticación en Facebook, luego use el código url en lugar de iFrame así:
NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FRemtechConfessionChambers&width=200&height=80&colorscheme=light&layout=standard&action=like&show_faces=true&send=false"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webViewFb loadRequest:req];
Puede incluirlo en un UIWebView, solo asegúrese de que esté dentro de <html><body>
. El problema es que una vez que el usuario hace clic en el botón, UIWebView puede redireccionar a un formulario de inicio de sesión, por lo que tendría que hacerlo lo suficientemente grande como para caber en esa cosa.
Diviértete creando un diseño que presente el botón de forma sensata.
Puede usar el complemento de SOOMLA Profile de código abierto: https://github.com/soomla/ios-profile
Aquí hay ejemplos de código para muchas acciones relacionadas con Facebook (iniciar sesión, compartir el estado, cargar imágenes, obtener contactos, invitar, etc.). Ver: https://github.com/soomla/ios-profile/blob/master/SoomlaiOSProfileExample/SoomlaiOSProfileExample/ViewController.m
Varias de las soluciones anteriores (por ejemplo, @floorjiann, @fabiobeta, @ Stephen-Darlington, @scott) asumen que la aplicación de iPhone también es una aplicación de Facebook (con su propia identificación).
Sin embargo, si su aplicación de iPhone solo tiene una página de fans, este no es el caso.
Yo este momento en el tiempo no puedes. Las API móviles no están exponiendo esta capacidad. Puede utilizar alguna solución que consista en incrustar la forma html de hacerlo en su aplicación.
Algunos detalles sobre la solución alternativa aquí: http://petersteinberger.com/2010/06/add-facebook-like-button-with-facebook-connect-iphone-sdk/