允许从第三方应用中的链接打开我的应用

时间:2017-05-18 12:04:01

标签: ios url-scheme

我目前正在使用自定义网址方案,允许用户从自定义链接(FoobarApp)访问我的应用(例如foobar://resource/42)。

我设置了这样的方案:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.acme.foobarapp</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>foobar</string>
        </array>
    </dict>
</array>

当用户点击Safari中的链接时,这很有效。

现在我希望他们能够点击第三方应用程序中的链接(在我的案例中为Trello),以打开我的应用程序。

这不起作用,因为系统(因为iOS 9,如果我没有记错的话)现在要求应用程序将他们想要查询的网址列入白名单(使用Info.plist中的LSApplicationQueriesSchemes)。

(当我点击第三方应用中的链接时,这是我在日志中收到的消息:

  

iPad Trello(UIKit)[2368]:-canOpenURL:网址失败:“foobar:// resource / 42” - 错误:“此应用不允许查询方案foobar”

期望第三方应用将我的(企业)应用方案添加到其LSApplicationQueriesSchemes列表中是不合理的。他们可以选择“绕过”这种保护措施吗?告诉系统的一种方式“很好,Trello可以打开我的应用程序”?

摘要

  • 自定义应用链接foobar://适用于Safari
  • 他们不在第三方应用程序中工作(没有任何反应,请参阅几行记录)
  • 如何将第三方应用程序列入白名单,以便他们可以打开我的应用程序?

1 个答案:

答案 0 :(得分:1)

一个应用程序必须告诉ios它想要查询url方案。它必须在编译时在其信息plist中声明它!

苹果允许iPhone无法解决这个问题。

当你越狱手机时,一切都可以完成,但......这也不是一个有效的假设;)

解决方法可能是通过HTTP链接到网站,让用户从那里打开应用程序。