允许从第三方应用中的 link 打开我的应用
Allow opening my app from a link in a third-party app
我目前正在使用自定义 URL 方案来允许用户从自定义 links (foobar://resource/42
) 访问我的应用程序(例如,FoobarApp
)。
我是这样设置方案的:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.acme.foobarapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>foobar</string>
</array>
</dict>
</array>
当用户在 Safari 中单击 link 时,这很有效。
现在我希望他们能够在第三方应用程序(在我的例子中是 Trello)中单击 links 来打开我的应用程序。
这不起作用,因为系统(因为 iOS 9 如果我没记错的话)现在需要应用程序白名单 URL 他们想要查询的方案(使用 LSApplicationQueriesSchemes
在 Info.plist).
(这是我在第三方应用程序中单击 link 时在日志中收到的消息:
iPad Trello(UIKit)[2368] : -canOpenURL: failed for URL: "foobar://resource/42" - error: "This app is not allowed to query for scheme foobar"
)
期望第三方应用程序将我的(企业)应用程序的方案添加到他们的 LSApplicationQueriesSchemes
列表中是不合理的。他们对 "bypass" 这种保护有任何选择吗?一种告诉系统的方式"It's fine, Trello can open my app"?
总结
- 自定义应用 links
foobar://
在 Safari 中工作
- 它们在第三方应用程序中不起作用(没有任何反应,请参阅日志几行)
- 如何将第三方应用列入白名单,以便它们可以打开 我的 应用?
一个应用程序必须告诉 ios 它想要查询一个 url 方案。它必须在编译时在其信息 plist 中声明它!
在允许的苹果上没有办法解决这个问题 iPhone。
当然,当你越狱 phone 时,一切都可以完成,但是......这也不是一个有效的假设 ;)
解决方法可能是 link 通过 HTTP 访问网站并让用户从那里打开应用程序。
我目前正在使用自定义 URL 方案来允许用户从自定义 links (foobar://resource/42
) 访问我的应用程序(例如,FoobarApp
)。
我是这样设置方案的:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.acme.foobarapp</string>
<key>CFBundleURLSchemes</key>
<array>
<string>foobar</string>
</array>
</dict>
</array>
当用户在 Safari 中单击 link 时,这很有效。
现在我希望他们能够在第三方应用程序(在我的例子中是 Trello)中单击 links 来打开我的应用程序。
这不起作用,因为系统(因为 iOS 9 如果我没记错的话)现在需要应用程序白名单 URL 他们想要查询的方案(使用 LSApplicationQueriesSchemes
在 Info.plist).
(这是我在第三方应用程序中单击 link 时在日志中收到的消息:
iPad Trello(UIKit)[2368] : -canOpenURL: failed for URL: "foobar://resource/42" - error: "This app is not allowed to query for scheme foobar"
)
期望第三方应用程序将我的(企业)应用程序的方案添加到他们的 LSApplicationQueriesSchemes
列表中是不合理的。他们对 "bypass" 这种保护有任何选择吗?一种告诉系统的方式"It's fine, Trello can open my app"?
总结
- 自定义应用 links
foobar://
在 Safari 中工作 - 它们在第三方应用程序中不起作用(没有任何反应,请参阅日志几行)
- 如何将第三方应用列入白名单,以便它们可以打开 我的 应用?
一个应用程序必须告诉 ios 它想要查询一个 url 方案。它必须在编译时在其信息 plist 中声明它!
在允许的苹果上没有办法解决这个问题 iPhone。
当然,当你越狱 phone 时,一切都可以完成,但是......这也不是一个有效的假设 ;)
解决方法可能是 link 通过 HTTP 访问网站并让用户从那里打开应用程序。