Ios 如何使用前台应用程序中的[[UIApplication sharedApplication]openURL:]打开新应用程序

Ios 如何使用前台应用程序中的[[UIApplication sharedApplication]openURL:]打开新应用程序,ios,objective-c,Ios,Objective C,我试图用这个打开facebook应用程序 [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@“fb:/”] 当我的应用程序在前台运行时,它可以正常工作,但如果我的应用程序在后台,它就不能工作 帮帮我 我是编程新手,你认为这是一项不可能完成的任务。想一想,首先问问你自己你在尝试什么 你的应用在后台,它意味着(最小化)。然后在何处触发调用OpenFacebook本机应用程序方法 如果应用程序位于后台,则无法从iPhone

我试图用这个打开facebook应用程序

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@“fb:/”]

当我的应用程序在前台运行时,它可以正常工作,但如果我的应用程序在后台,它就不能工作

帮帮我


我是编程新手,你认为这是一项不可能完成的任务。想一想,首先问问你自己你在尝试什么

  • 你的应用在后台,它意味着(最小化)。然后在何处触发调用OpenFacebook本机应用程序方法

  • 如果应用程序位于后台,则无法从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
    }
}
这是一篇很好的文章

更新:-

我不认为这是适合你的要求,但使用。您可以从safari浏览器或其他应用程序打开应用程序。只需设置URL类型-->设置URL方案,如下所示

然后像我在下面的图片中那样尝试从浏览器打开应用程序:-


您不能从后台模式启动另一个应用程序,因为这样会在没有用户交互的情况下抢占用户的当前任务。只有一个应用程序被允许先发制人用户的当前操作,那就是在来电情况下的手机

你可以做的是显示一个本地通知,如果用户操作该通知来启动你的应用程序-将其放回前台-那么你可以启动Facebook

UILocalNotification* localNotification = [[UILocalNotificationalloc] init]; 
localNotification.fireDate = nil;
localNotification.alertBody = @"I want to launch Facebook";
localNotification.timeZone = nil;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
然后在你的应用程序中委托-

- (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;
    }

但是,如果用户选择不执行您的通知,您将无能为力。

顺便说一句,谢谢。。但我的问题是,当我的应用程序状态为前台(*不在后台)时,我正试图启动facebook。。。在后台,它工作得很好。。但是在前台,它不起作用,无法得到你的答案你在尝试什么,你的任务是什么我是说背景对不起我的困惑。。我的应用程序在后台,我想从我的应用程序启动fb。我该怎么做等等,你是不是误解了前景和背景?你的意思是相反的是真的?前景是背景?是的我是说。。对不起,我弄糊涂了。我真的不明白。当您的应用程序位于前台时,即您的应用程序已加载且在屏幕上可见时,此选项有效?但当用户关闭应用程序时不起作用?可能是重复的