【问题标题】:iPhone apps: Can I open an app from a link in a website?iPhone 应用程序:我可以从网站中的链接打开应用程序吗?
【发布时间】:2010-01-19 17:47:39
【问题描述】:

我是一名新手 iPhone 开发人员,正在编写一个类似于网站“移动版”的应用程序。

我想知道是否可以从网站中的链接启动我的应用程序。因此,例如,有人在 iPhone Safari 中进入我们的网站,点击一个链接,我们的应用程序就会启动。

这可能吗?
如果是这样,我也可以“传递参数”给我正在启动的应用程序吗?如...
点击不同的链接可以让他们在启动时在应用程序中获得不同的内容。

谢谢!
丹尼尔

【问题讨论】:

    标签: iphone


    【解决方案1】:

    某些应用具有可启动它们的 URL 方案。如果一个应用程序已经发布了这个方案(或者如果你在他们的包中挖掘)你可以启动它。例如,假设的 twitter 应用程序可能会使用 twitterapp://here+is+my+tweet URL 启动。如果您使用正确的 URL 方案预加载您的应用程序,您也可以为您的应用程序执行此操作。

    这是来自 info.plist 的示例 URL 方案:

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.standalone.cooltwitterapp</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>twitterapp</string>
            </array>
        </dict>
    </array>
    

    【讨论】:

    • 会回答同样的问题。 +1
    • 当您点击http://youtube.com/ 链接(即不是youtube://)时,Youtube 应用程序如何打开
    • @andrewtweber 操作系统专门处理:developer.apple.com/library/ios/#featuredarticles/…
    • 在桌面网络浏览器中单击此 URL 时会发生什么?苹果浏览器? Mac 铬?火狐?视窗IE? Windows mac/chrome/FF?
    • @asaf am ,请参阅下面 jensgram 的答案 - stackoverflow.com/a/2095662
    【解决方案2】:

    另外值得注意的是,application:openURL:sourceApplication:annotation: 方法将在您的应用从 URL 启动时被调用。详情Apple's Docs

    【讨论】:

    • 我修复了您的链接(已损坏)。他们的文档还说不推荐使用 handleOpenURL,应该使用不同的 openURL 函数。
    • 没错,handleOpenURL: 已弃用。请改用application:openURL:sourceApplication:annotation:
    【解决方案3】:

    是的你可以,使用custom URI schemes。但请注意,没有该应用程序的客户将无法使用这些链接。

    如果可以,我是否也可以将参数“传递”给我正在启动的应用程序?

    再次,是的。一旦您的应用注册了给定的方案,它就是您的全部了。

    【讨论】:

    • 为什么不存储一个cookie来说明客户端是否有应用程序,并根据cookie显示一个或另一个链接。如果您没有找到 cookie,则显示一个问题:“您是否安装了 XYZ 应用程序?”如果他们说“不”,请立即安装。
    • @Ju66ernaut 更新了链接。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2013-03-14
    • 2018-07-04
    • 2012-04-24
    • 2016-07-17
    • 2019-04-27
    • 2013-03-02
    • 2021-08-20
    • 1970-01-01
    相关资源
    最近更新 更多