有谁知道如何在iphone应用程序中加入facebook“like button”。我尝试在UIWebView
内调用iframe,但这不起作用。
答案 0 :(得分:13)
查看这段代码: http://angelolloqui.blogspot.com/2010/11/facebook-like-button-on-ios.html
将FBLikeButton
课程添加到您的视图中:
FBLikeButton *likeButton = [[FBLikeButton alloc] initWithFrame:CGRectMake(0, 372, 320, 44)
andUrl:@"http://www.facebook.com/pages/De-Zilk/108209735867960"];
非常感谢AngelGarcíaOlloqui
编辑:很高兴添加...奖励积分:
如果您使用上述方法,则网页的格式不适合iPhone。你可以做的是运行一些JavaScript代码来删除所有令人不安的div。使用这个(长句):
[_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);"]];
您可以将其放在webViewDidFinishLoad
Facebook类的委托方法FBDialog
中。
答案 1 :(得分:2)
像Widget这样的Fb可以嵌入到我们的应用程序中。您只需添加一个webView并获取Fb Like Widget html code/URL here。
在ViewController.h中你要添加fb之类的按钮:
#import <UIKit/UIKit.h>
@interface TestViewController : UIViewController <UIWebViewDelegate>
@property (strong, nonatomic) UIWebView * fbLikeWebView;
-(void)embedFBLikeButton;
@end
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;
}
}
}
然后在ViewWillAppear方法中调用enbeddFBLikeButton方法在Web视图上添加fbLike按钮wigdet:
-(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]]];
}
现在,您可以按照UIWebViewDelegate来定义edelegate方法:
#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];
}
此方法用于将用户登录到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
}
}];
}
答案 2 :(得分:2)
这是一个老问题,但我们得到了答案
现在使用fb sdk我们可以简单地添加like按钮
FBLikeControl *likeButton = [[FBLikeControl alloc] init];
like.objectID = @"http://ihackthati.wordpress.com/photo1/";
[self addSubview:like];
答案 3 :(得分:1)
上面的一些解决方案(例如@floorjiann,@ fabiobeta,@ Stephen-Darlington,@ scott)假设iPhone应用程序也是一个Facebook应用程序(具有自己的id)。
但是,如果您的iPhone应用程序只有一个粉丝页面,则情况并非如此。
答案 4 :(得分:0)
您可以将其包含在UIWebView中,只需确保它位于<html><body>
内。问题是,一旦用户单击该按钮,UIWebView可能会重定向到登录表单,因此您必须使其足够大以适应该事物。
玩得开心,创造出一种以合理的方式呈现按钮的设计。
答案 5 :(得分:0)
答案 6 :(得分:0)
Facebook最近更新了他们的iPhone Facebook Connect framework以使用Graph API。这是您在Facebook上“喜欢”对象所需的API。
答案 7 :(得分:0)
这里你去 - 源代码...享受 - 如果它有用,请发表评论。
http://nowbranded.com/blog/adding-a-facebook-like-button-to-an-iphone-application/
答案 8 :(得分:0)
首先在Facebook上检查您的身份验证,然后使用网址代码而不是iFrame:
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];
答案 9 :(得分:0)
您可以使用开源SOOMLA Profile插件: https://github.com/soomla/ios-profile
有许多与Facebook相关的操作(登录,例如,共享状态,上传图像,获取联系人,邀请等)的代码示例。看到: https://github.com/soomla/ios-profile/blob/master/SoomlaiOSProfileExample/SoomlaiOSProfileExample/ViewController.m
答案 10 :(得分:-1)
我这个时刻你不能。移动API不会公开此功能。 您可以使用一些解决方法,包括在您的应用中嵌入html方式。
有关解决方法的一些详细信息:http://petersteinberger.com/2010/06/add-facebook-like-button-with-facebook-connect-iphone-sdk/