Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 通过iOS上的本机facebook应用打开facebook链接_Iphone_Ios_Xcode_Facebook - Fatal编程技术网

Iphone 通过iOS上的本机facebook应用打开facebook链接

Iphone 通过iOS上的本机facebook应用打开facebook链接,iphone,ios,xcode,facebook,Iphone,Ios,Xcode,Facebook,如果iPhone上安装了本机Facebook应用程序。如何从我的应用程序打开facebook链接到本机facebook应用程序。在Safari打开的情况下,链接与以下内容相同: 谢谢。以下是Facebook应用程序使用的一些方案,在源链接上还有很多: 例子 来源 这将在Safari中打开URL: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.p

如果iPhone上安装了本机Facebook应用程序。如何从我的应用程序打开facebook链接到本机facebook应用程序。在Safari打开的情况下,链接与以下内容相同:


谢谢。

以下是Facebook应用程序使用的一些方案,在源链接上还有很多:

例子 来源
这将在Safari中打开URL:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/comments.php?href=http://wombeta.jiffysoftware.com/ViewWOMPrint.aspx?WPID=317"]];
对于iphone,如果使用以fb开头的url安装,则可以启动Facebook应用程序://

更多信息可在此处找到:也可在此处找到:

从上述网站被盗:

fb://profile – Open Facebook app to the user’s profile
fb://friends – Open Facebook app to the friends list
fb://notifications – Open Facebook app to the notifications list (NOTE: there appears to be a bug with this URL. The Notifications page opens. However, it’s not possible to navigate to anywhere else in the Facebook app)
fb://feed – Open Facebook app to the News Feed
fb://events – Open Facebook app to the Events page
fb://requests – Open Facebook app to the Requests list
fb://notes - Open Facebook app to the Notes page
fb://albums – Open Facebook app to Photo Albums list
要启动上述URL,请执行以下操作:

NSURL *theURL = [NSURL URLWithString:@"fb://<insert function here>"];
[[UIApplication sharedApplication] openURL:theURL];
NSURL*theURL=[NSURL-URLWithString:@“fb://”;
[[UIApplication sharedApplication]openURL:theURL];

要添加yonix的评论作为答案,旧的
fb://page/…
URL不再有效。显然,它被
fb://profile/…
所取代,即使页面不是一个概要文件。

我用以下方法在MonoTouch中实现了这一点,我相信纯粹基于Obj-C的方法不会有太大的不同。我在一个类中使用了它,这个类的URL有时会发生变化,这就是为什么我没有将它放在if/elseif语句中

NSString *myUrls = @"fb://profile/100000369031300|http://www.facebook.com/ytn3rd";
NSArray *urls = [myUrls componentsSeparatedByString:@"|"];
for (NSString *url in urls){
    NSURL *nsurl = [NSURL URLWithString:url];
    if ([[UIApplication sharedApplication] canOpenURL:nsurl]){
        [[UIApplication sharedApplication] openURL:nsurl];
        break;
    }
}
在您的应用程序更改为Safari/Facebook之前,不总是调用中断。我假设你的程序会停在那里,当你返回时调用它。

只需使用或页面名称)来获取你的页面ID,然后你就可以看到所有的页面和你的ID

在您的IOS应用程序中使用后:

 NSURL *url = [NSURL URLWithString:@"fb://profile/[your ID]"];
 [[UIApplication sharedApplication] openURL:url];

我知道这个问题由来已久,但为了支持上述答案,我想与大家分享我的工作代码。 只要将这两个方法添加到任何类中即可。代码将检查是否安装了facebook应用程序,如果未安装,则url将在浏览器中打开。如果在尝试查找profileId时出现任何错误,则页面将在浏览器中打开。只需将url(例如)传递给openUrl:它就会发挥所有的魔力。希望它能帮助别人

注意:UrlUtils是为我提供代码的类,您可能需要将其更改为其他类以满足您的需要


如果Facebook应用程序已登录,则在执行以下代码时将打开该页面。如果在执行代码时Facebook应用程序未登录,则用户将被重定向到Facebook应用程序进行登录,然后在连接Facebook后,用户将不会被重定向到该页面

NSURL *fbNativeAppURL = [NSURL URLWithString:@"fb://page/yourPageIDHere"] [[UIApplication sharedApplication] openURL:fbNativeAppURL]

swift 3

if let url = URL(string: "fb://profile/<id>") {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:],completionHandler: { (success) in
                print("Open fb://profile/<id>: \(success)")
            })
        } else {
            let success = UIApplication.shared.openURL(url)
            print("Open fb://profile/<id>: \(success)")
        }
 }
如果让url=url(字符串:“fb://profile/”){
如果可用(iOS 10,*){
UIApplication.shared.open(url,选项:[:],completionHandler:{(成功)位于
打印(“打开fb://profile/:\(成功)”)
})
}否则{
让success=UIApplication.shared.openURL(url)
打印(“打开fb://profile/:\(成功)”)
}
}

今天刚刚验证了这一点,但是如果您试图打开一个Facebook页面,您可以使用“fb://page/{page ID}”

页面ID可以在页面底部附近的“关于”部分的页面下找到

特定于我的用例,在Xamarin.Forms中,您可以使用此代码段在应用程序中打开(如果可用),否则在浏览器中打开

OpenUri(新的Uri(“fb://page/{id}”)

2020答案

只需打开url。Facebook自动注册深度链接

let url = URL(string:"https://www.facebook.com/TheGoodLordAbove")!
UIApplication.shared.open(url,completionHandler:nil)

这将在facebook应用程序(如果已安装)中打开,并在默认浏览器中打开,否则以前的方法
fb://profile/[ID]
不起作用

尝试
fb://profile?id=[id]

用法示例:

// Open Profile or page
// To open in Application
if UIApplication.shared.canOpenURL(URL(string: "fb://profile?id=vikramchaudhary.ios")!) {
    UIApplication.shared.open(URL(string: "fb://profile?id=vikramchaudhary.ios")!, options: [:], completionHandler: nil)
} else {
    // To open in safari
    UIApplication.shared.open(URL(string: "https://facebook.com/vikramchaudhary.ios/")!, options: [:], completionHandler: nil)
}


您的方式与新的FB应用程序(2012年8月)不兼容。。。fb://profile/does要添加@yonix所说的内容,您可以通过转到找到页面id。即使您想要一个页面,也可以在URL中使用“profile”。此外,如果您认为用户可能没有安装FB应用程序,请在openURL之前调用canOpenURL:我可以在safari中使用login?打开此url吗?。我在整个应用程序中使用Facebook。我已经登录了Facebook。但如果我用safari打开Facebook url页面。再次请求登录。我该如何解决这个问题呢?请注意,facebook并不正式支持这些方案,它们可能会随时更改/停止工作。即使我知道id是正确的,我仍无法找到页面。知道为什么吗?我们也需要在iOS 9的
Info.plist
中添加白名单才能让它正常工作。看这个。我也做了同样的事情,但它不适用于包含视频的帖子。它进入Facebook应用程序,但不显示任何内容。例如,这个
10153231379946729
。有什么想法吗?谢谢你的图片网址!这是非常有用的,这是拼图的一个重要部分。谢谢它不工作。{错误:{消息:“请求此资源需要一个访问令牌。”,键入:“OAuthException”,代码:104,fbtrace_id:“AlTl1RaNO9b”}这在iOS 9上对我来说很好,但在iOS 8和iOS 10上,它只是打开Facebook应用程序,而没有进入我的页面进行编辑。这是我最初发布的monotouch代码的obj-c代码。是否可以在模拟器6.1中进行检查?您不能在模拟器上添加任何应用程序。这就是为什么它不会在模拟器上运行它看起来像在iOS 7 http中,facebook URL在本机facebook应用程序中打开,即使它们不起作用(例如,使用别名而不是UID)。我可能应该申请雷达。我正在尝试,但在FB应用加载后,我找不到页面。无法弄清楚这将不再起作用的原因:
“消息”:“(#803)无法通过用户名(user.name)查询用户”
如何获取此id?以下链接可能会帮助您在创建fb帐户时创建fb用户的唯一id。上面的例子我们在本地fb appOkay上打开用户配置文件。我想要的是,如何在facebook原生应用程序中打开他人的个人资料?我搜索了很多,但什么也没有得到。问题的细节在这里:你在使用FBSDK吗?
if let url = URL(string: "fb://profile/<id>") {
        if #available(iOS 10, *) {
            UIApplication.shared.open(url, options: [:],completionHandler: { (success) in
                print("Open fb://profile/<id>: \(success)")
            })
        } else {
            let success = UIApplication.shared.openURL(url)
            print("Open fb://profile/<id>: \(success)")
        }
 }
let url = URL(string:"https://www.facebook.com/TheGoodLordAbove")!
UIApplication.shared.open(url,completionHandler:nil)
// Open Profile or page
// To open in Application
if UIApplication.shared.canOpenURL(URL(string: "fb://profile?id=vikramchaudhary.ios")!) {
    UIApplication.shared.open(URL(string: "fb://profile?id=vikramchaudhary.ios")!, options: [:], completionHandler: nil)
} else {
    // To open in safari
    UIApplication.shared.open(URL(string: "https://facebook.com/vikramchaudhary.ios/")!, options: [:], completionHandler: nil)
}