application:openURL:sourceApplication:annotation:当有MainWindow.xib

时间:2015-08-25 17:41:30

标签: ios hyperlink deep-linking openurl

我已经筛选了关于openURL没有被调用的其他各个帖子,并且没有一个适用于我的案例,所以这是另一个。

我正在尝试实现深层链接。我可以通过链接打开应用程序,因此我的网址方案有效。但是,openURL方法永远不会被调用。

我在iOS 8上。

如果我删除了MainWindow.xib,我会得到一个黑屏(没有整理出来的详细信息),但openURL方法会被调用。

我的公司并不完全是项目的所有者,所以理想情况下,有一种方法可以使openURL与MainWindow.xib一起工作,或者显示一些文档说明这不受支持。

代码: 在我的applicationdelegate.m中:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSLog(@"open %@",url);
    return YES;
}

并在info.plist中:

<key>CFBundleURLTypes</key>
<array>
<dict>
    <key>CFBundleURLName</key>
    <string>com.something.appish</string>
    <key>CFBundleURLSchemes</key>
    <array>
        <string>schemename</string>
    </array>
    <key>CFBundleURLTypes</key>
    <string>Viewer</string>
</dict>
</array>

我使用的链接是schemename:// anything and com.something.appish:// anything

这些打开我的应用程序或将其带到最前端,但不会导致openURL调用。

以前有关该主题的帖子包括:

  1. openURL应该在应用程序委托中定义,而不是在视图控制器中定义。
  2. 尝试handleOpenURL(适用于早期的iOS版本)。
  3. url scheme未正确定义。
  4. app未安装案例。
  5. 尝试打开特定文件。

1 个答案:

答案 0 :(得分:1)

事实证明,一个静态库(我有源​​访问权限)在openURL上进行了调整。

谢谢!