我尝试使用此
打开Facebook应用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"fb://"]];
当我的应用程序在前台运行时,它运行正常但如果我的应用程序在后台运行则无法正常工作。
帮助我。
我是编程方面的新手
答案 0 :(得分:2)
你认为不可能的任务。想想并首先问问你自己在想什么。
您的应用在背景中意味着(最小化)。然后在哪里触发调用开放的Facebook Native app方法。
如果应用在后台,则您无法在iPhone屏幕上处理您的应用事件。
来自应用程序的开放Fb原生应用程序的轰鸣声代码。但是从背景出来的逻辑思考。根本不相关。
您可以使用以下方式打开Facebook应用程序: -
- (IBAction)OpenFB: (id) sender
{
NSURL* facebookURL = [NSURL URLWithString: @"fb://profile/157893597658332"];
UIApplication* app = [ UIApplication sharedApplication ];
if( [ app canOpenURL: facebookAppURL ] ) {
[ app openURL: facebookAppURL ];
} else {
// url wrong
}
}
这是非常好的文章
<强>更新: - 强>
我不认为这适合您的要求,但使用Custom URL Scheme。您可以从safari浏览器或其他应用程序打开您的应用程序。只需设置网址类型 - &gt;设置像波纹管这样的URL方案
然后像我在波纹管图片中那样尝试从浏览器打开你的应用程序: -
答案 1 :(得分:0)
您无法从后台模式启动其他应用,因为这会在没有用户互动的情况下抢占用户的当前任务。只允许一个应用程序抢占用户当前的操作,即拨打来电时的电话。
您可以做的是显示本地通知,如果用户操作启动您的应用的通知 - 将其重新置于前台 - 那么您可以启动Facebook。
UILocalNotification* localNotification = [[UILocalNotificationalloc] init];
localNotification.fireDate = nil;
localNotification.alertBody = @"I want to launch Facebook";
localNotification.timeZone = nil;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
然后在你的app委托 -
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
// Handle launching from a notification
UILocalNotification *locationNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
if (locationNotification) {
// Open Facebook
[application openURL:[NSURL URLWithString:@"fb://"];
}
return YES;
}
但如果用户选择不操作您的通知,则无法执行任何操作。