Est-ce que quelqu'un sait comment j'inclurais un facebook "comme un bouton" dans une application iPhone? J'ai essayé d'appeler l'iframe à l'intérieur d'une UIWebView
mais cela ne fonctionne pas.
Découvrez ce joli morceau de code: http://angelolloqui.blogspot.com/2010/11/facebook-like-button-on-ios.html
Ajoutez la classe FBLikeButton
à votre vue:
FBLikeButton *likeButton = [[FBLikeButton alloc] initWithFrame:CGRectMake(0, 372, 320, 44)
andUrl:@"http://www.facebook.com/pages/De-Zilk/108209735867960"];
Merci beaucoup Angel García Olloqui
EDIT: C'est bien d'ajouter ... Pour les points bonus:
Si vous utilisez la méthode ci-dessus, la page Web n'est pas correctement formatée pour un iPhone. Ce que vous pouvez faire est d’exécuter du code JavaScript pour supprimer tous les div inquiétants. Utilisez ceci (longue phrase):
[_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);"]];
Vous pouvez le placer dans la méthode déléguée webViewDidFinishLoad
de la classe Facebook FBDialog
.
Fb comme Widget peut être intégré à notre application. Vous devez simplement ajouter une webView et obtenir le Fb Like Widget code html/URL ici .
dans ViewController.h où vous voulez ajouter un bouton comme:
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController <UIWebViewDelegate>
@property (strong, nonatomic) UIWebView * fbLikeWebView;
-(void)embedFBLikeButton;
@end
dans 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;
}
}
}
ensuite, dans la méthode ViewWillAppear, appelez la méthode enbeddFBLikeButton pour ajouter le bouton wigdet fbLike à la vue 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]]];
}
Vous vous conformez maintenant à UIWebViewDelegate pour définir la méthode edelegate ici:
#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];
}
Cette méthode pour vous connecter à un compte 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
}
}];
}
C'est une vieille question, mais nous venons de recevoir la réponse.
En utilisant fb sdk maintenant, nous pouvons simplement ajouter le bouton "J'aime"
FBLikeControl *likeButton = [[FBLikeControl alloc] init];
like.objectID = @"http://ihackthati.wordpress.com/photo1/";
[self addSubview:like];
Plusieurs des solutions ci-dessus (par exemple @floorjiann, @fabiobeta, @ Stephen-Darlington, @scott) supposent que l'application iPhone est également une application Facebook (avec son propre identifiant).
Toutefois, si votre application iPhone ne comporte qu'une page de fans, ce n'est pas le cas.
Vous pouvez l'inclure dans un UIWebView, assurez-vous simplement qu'il se trouve dans <html><body>
. Le problème est qu’une fois que l’utilisateur a cliqué sur le bouton, UIWebView peut être redirigé vers un formulaire d’ouverture de session, vous devrez donc le rendre suffisamment grand pour l’adapter à cet élément.
Amusez-vous à créer un design qui présente le bouton de manière judicieuse.
Commencez par vérifier votre authentification sur Facebook, puis utilisez le code url au lieu de iFrame comme ceci:
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];
Ici vous allez - w le code source ... profitez-en et laissez s'il vous plaît un commentaire s’il est utile.
http://nowbranded.com/blog/adding-a-facebook-like-button-to-an-iphone-application/
Facebook a récemment mis à jour son/ iPhone Facebook Connect Framework pour fonctionner avec l’API Graph. C'est l'API dont vous avez besoin pour "aimer" les objets sur Facebook.
Vous pouvez utiliser le plugin Open Source SOOMLA Profile: https://github.com/soomla/ios-profile
Il existe des exemples de code pour de nombreuses actions liées à Facebook (connexion, type d'état du partage, téléchargement d'une image, obtention de contacts, invitation, etc.). Voir: https://github.com/soomla/ios-profile/blob/master/SoomlaiOSProfileExample/SoomlaiOSProfileExample/ViewController.m