【问题标题】:Return to the browser page that launched an app without refreshing返回启动应用程序的浏览器页面而不刷新
【发布时间】:2014-07-17 01:05:26
【问题描述】:

我正在开发一款适用于 iOS 的 CAPTCHA 应用程序,可以在网站上使用它来替代像 reCAPTCHA 这样的 CAPTCHA 代码。我有一个按钮,它使用自定义 URL 架构来启动应用程序。然后用户证明他们是人,现在我想将用户返回到他们所在的页面。

我尝试使用他们提供的 URL 打开浏览器。这将打开用户来自的同一选项卡,但随后刷新页面。用户在单击按钮之前输入表单的任何数据都会在页面刷新之前的一瞬间被看到,并且所有数据都会丢失!

Apple 不允许应用商店中的应用自行关闭,因此我无法直接退出。

如何在不刷新页面的情况下将用户返回到启动我的应用程序的浏览器中的页面,以免表单数据丢失?

提前感谢您的帮助。

【问题讨论】:

    标签: ios iphone objective-c ipad mobile-safari


    【解决方案1】:

    我终于想出了一个方法来做到这一点。如果您将 #anything 附加到已在 Safari 中打开的页面的 URL,它只会返回到该页面而不重新加载它!

    这是有道理的,尽管有一些异常情况。如果页面上有与#anything 匹配的锚点,它不会像单击带有锚点的链接那样跳转到页面中的那个点。此外,如果已经打开的页面与包含 #anything 的 URL 完全匹配,则会重新加载该页面。

    所以我的解决方案是调用带有 #random 锚点的原始 URL。

    【讨论】:

    • 如果有人感兴趣,我可以确认这也适用于瑞典服务 BankID
    • @JörgenLundgren 你是明星!谢谢! BankID 应该在他们的官方文档中有这个,我们可能不是第一个遇到它的人
    【解决方案2】:

    有兴趣的问题,我不知道如何在 iOS 端执行此操作,因为我不知道如何在不重新/打开某些 URL 的情况下打开浏览器,但可以在 Web 端提供帮助。

    在启动您的应用程序之前,可以保存表单数据,将其分配给某个键并通过 URL 发送给您,完成后您将返回到带有参数中的键的页面,并且该键将恢复数据。

    【讨论】:

    • 感谢您的建议。如果我在答案中描述的行为将来发生变化,这将是我采取的方法。
    猜你喜欢
    • 1970-01-01
    • 2011-02-14
    • 2016-08-23
    • 2021-01-13
    • 2012-05-12
    • 2016-08-16
    • 2020-08-12
    • 1970-01-01
    • 2013-09-08
    相关资源
    最近更新 更多