首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我不能用ios 9打开facebook和twitter应用程序

为什么我不能用ios 9打开facebook和twitter应用程序
EN

Stack Overflow用户
提问于 2016-01-24 11:07:55
回答 3查看 1.4K关注 0票数 2

在ios9出现之前,我用下面的代码打开我的应用程序,如果手机有facebook应用程序,它会打开facebook应用程序,如果没有,它会打开twitter.this的safari browser.same是我的代码。

代码语言:javascript
复制
- (IBAction)facebookButton:(id)sender {
    NSURL *facebookUrl = [NSURL URLWithString:@"fb://profile/number"];
    if ([[UIApplication sharedApplication] canOpenURL:facebookUrl]) {
        [[UIApplication sharedApplication] openURL:facebookUrl];
    }
    else{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.facebook.com/number"]];
    }

}

- (IBAction)twitterButton:(id)sender {
    NSURL *twitterUrl = [NSURL URLWithString:@"twitter://profile/"];
    if ([[UIApplication sharedApplication] canOpenURL:twitterUrl]) {
        [[UIApplication sharedApplication] openURL:twitterUrl];
    }
    else{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.twitter.com/"]];
    }
}

这很好,在iOS 9之前,但是现在如果应用程序是否存在,它只会在safari.help me中打开

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-24 11:22:01

我们必须在info.plist中添加以下内容

票数 4
EN

Stack Overflow用户

发布于 2016-01-24 12:27:22

来自苹果关于canOpenURL:方法的文档:

如果您的应用程序在iOS 9.0上或之后链接,您必须声明要传递给此方法的URL方案。为此,可以在Xcode项目的LSApplicationQueriesSchemes文件中使用Info.plist数组。对于您希望应用程序与此方法一起使用的每个URL方案,请将其作为字符串添加到此数组中。 如果您的(iOS 9.0或更高版本)应用程序使用未声明的方案调用此方法,则该方法将返回NO,无论是否在设备上安装了适合该方案的应用程序。 与此方法不同,openURL:方法不受LSApplicationQueriesSchemes要求的限制:如果在设备上安装了处理方案的应用程序,则无论您是否声明了该方案,openURL:方法都能工作。

苹果将这一更改添加到API中,因为canOpenURL:方法通常用于接收安装在用户设备上的应用程序的信息,而不需要实际的openURL:调用。

问题可以通过以下方式解决:

  • 在LSApplicationQueriesSchemes数组中添加"fb“和"twitter”URL方案;
  • 如果未成功打开openURL:方法,则返回否。您可以通过以下方式重写代码,以避免canOpenURL:调用: if (![UIApplication sharedApplication openURL:NSURL:@“fb://profile/number”){ [UIApplication sharedApplication openURL:NSURL sharedApplication}
  • 查看通用链接,它以类似的方式工作-打开应用程序,如果它在设备上可用,否则URL将在Safari中打开。
票数 1
EN

Stack Overflow用户

发布于 2016-01-25 11:18:42

自定义深度链接模式不再适用于iOS9。你需要使用通用链接。见指南。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34975005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档