【问题标题】:iPhone: Pass information from web page to app that's downloaded from App StoreiPhone:将信息从网页传递到从 App Store 下载的应用程序
【发布时间】:2009-11-18 18:42:21
【问题描述】:

我正在尝试将网页中的信息粘贴到该网页建议下载的 iPhone 应用程序中。我控制着网页和可下载的应用程序。

场景是这样的:

用户访问我的网页,我在该网页上认出了该用户(他可能已登录,我将他的信息存储在 cookie 中)。然后,我向他展示了一个指向 App Store 中的应用程序的链接,他应该下载该应用程序以“增强体验”我的这个 Web 服务。 现在,当用户在他的 iPhone 上启动下载的应用程序时,我想重新识别之前访问过该网页的用户。

如果 iPhone 应用程序可以读取 Safari 的 cookie,一切都会变得简单。但它不能。

一个有点蹩脚的解决方案可能是网络服务器存储访问者的 IP 地址,并在他启动 iPhone 应用程序后使用它来识别他。但这并不可靠。

另一种方法是给用户一个他需要记住的令牌(代码),然后在应用程序中重新输入。我觉得还是挺尴尬的。

有更好的建议吗?

【问题讨论】:

    标签: iphone app-store


    【解决方案1】:

    简单地说,你不能这样做。

    您可以考虑使用custom URL scheme 来启动应用程序。您可以向用户发送一封使用此自定义链接的电子邮件。但是,这样做有几个问题:

    • 用户可能没有在其 iPhone 上设置用于注册您网站的帐户。这似乎不太可能,但假设用户在 5 年前使用他们的 Hotmail 帐户注册了您的网站,然后他们已经切换到 Gmail。

    • 电子邮件不太可能适合他们的工作流程。他们可能会下载该应用程序并通过触摸图标而不是单击收到的电子邮件中的链接来启动它。

    您也可以将自定义 URL 作为链接放在您的网页上,但同样,这不适合工作流程,因为他们必须前往 App Store 应用进行下载。

    考虑一下这一点 - 如果您有某种具有身份验证步骤的网站,那么可以说用户是已经在其 iPhone 上安装了 Facebook 等应用程序的人。他们已经习惯了必须将凭据输入应用程序的范例,尽管他们可能已经在 Safari 中完成了。

    【讨论】:

      【解决方案2】:

      如果您可以从网页上的 javascript 读取唯一的 iPhone 设备 ID,则可以在应用程序连接时再次查找...

      但我在 Mobile Safari 中找不到任何从 Javascript 读取此内容的方法,我想我会发帖以防万一现在有办法让您考虑另一种选择。

      【讨论】:

      • 使用以某种方式识别特定 iPhone 的东西不是一个坏主意。我会看看那个方向是否有什么东西。
      • 也许可以通过html/JS代码查询到iPhone的其他一些资源,然后用来生成代码。比如使用前 10 个联系人,或者 iPhone 上存储的图片的校验和...
      • 事实证明,实际上没有任何东西可以让您从 Mobile Safari 中运行的 html 代码中获取有关 iPhone 的任何细节。
      【解决方案3】:

      好的,我们找到了一个可行的解决方案:html 代码可以创建一个 cookie。后来,当应用程序运行时,它当然不能直接读取该 cookie(由于 iPhone 应用程序的沙盒)。但是,它可以连接到服务器,然后打开一个指向服务器的 http URL,并包含它事先从服务器获得的唯一令牌。这导致启动 Safari,访问服务器。服务器现在可以读取上述cookie,并最终在令牌的帮助下建立连接。

      【讨论】:

      • 所以用户必须启动您的应用程序,该应用程序启动 safari,然后必须返回您的应用程序?这听起来不像是直接在应用中输入用户名/密码更好的体验。
      • 确实我发现我提出的技术更可取,因为用户不必记住任何东西,例如他的注册名+密码。我的解决方案也涉及更少的打字。这不是很明显吗?
      【解决方案4】:

      刚刚偶然发现这个问题,我很好奇您是否考虑过使用 UIWebView。 问题出在哪里 - UIWebView 是否与 safari 共享 cookie?

      如果成功了,剩下的应该很容易。

      【讨论】:

      • 好问题。我会为自己做个记录以进行调查
      【解决方案5】:

      UIWebView 的不与 Safari 共享 cookie。所以不幸的是,这不是一个选择。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        • 2022-01-25
        相关资源
        最近更新 更多