【问题标题】:Opening installed app using URL Scheme is not working使用 URL Scheme 打开已安装的应用程序不起作用
【发布时间】:2015-10-05 10:43:27
【问题描述】:

我有一个共享链接的应用程序。当有人点击该链接时,它会打开Safari 移动应用程序,然后自动打开应用程序(比如:AppName)(如果安装在他的设备上)。

let url =  "appname://listener?mid=560aa7"

这在 iOS 8+ 上运行完美,但在 iOS 9 上停止工作。 请注意,我还在URL Scheme 上添加了 FB。 我的URLType是这样的:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
          <string>Editor</string>
        <key>CFBundleURLName</key>
          <string>com.appname.mobile</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb705.....</string>
            <string>appname</string>
        </array>
    </dict>
</array>

从 iOS9 开始,我添加了:

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>appname</string>
</array>

没有成功。谁能帮帮我?

我尝试了appname:appname://,但没有成功。

我还为openURL添加了新方法:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool

【问题讨论】:

  • 只有输入 URL 方案“foo.bar.app://”才能成功。一旦我尝试在斜线 (//) 后面包含任何内容,Safari 就会告诉该页面的地址无效。

标签: swift2 ios9 url-scheme


【解决方案1】:

我没有看到您方面的问题,似乎一切都设置正确。 然而,关于 iOS 9,其他用户报告了 iframe 的这个问题。确保在服务器端正确设置了这些东西。检查这两个链接:

iOS 9 iFrame Problem 1

iOS 9 iFrame Problem 2

【讨论】:

  • 这应该如何与服务器相关联?您是否注意到我们正在使用自定义 URL 方案,例如foo.bar.app://open 意味着可能存在根本不存在的域?因此,没有可以以任何方式调整的服务器!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 1970-01-01
  • 2020-03-23
  • 2015-03-30
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多