14

我正在构建一个全屏 iPhone 优化的网络应用程序。它像本地应用程序一样从主页启动,并通过以下指令像独立应用程序一样运行,但它只是普通的 HTML/CSS/JavaScript,不涉及 PhoneGap。

<meta name="apple-mobile web-app-capable" content="yes" />

当尝试通过 OAuth 进行身份验证时,重定向到 Twitter(或任何其他 OAuth 提供程序)会将我从全屏 Web 应用程序中带到 Mobile Safari。Twitter 身份验证完成后,重定向回我的应用程序不会启动我的主页应用程序,而只是在 Mobile Safari 中重定向。是否可以在 iPhone 主页 Web 应用程序中进行 OAuth?除此之外,我能否获得 OAuth 回调以重新启动我的主页 Web 应用程序?

4

2 回答 2

15

我最近遇到了类似的问题,发现如果你在 Javascript 中设置 URL,window.location.href="http://example.com/whatever"然后 iOS 不会切换到 Safari。我已经设法让 PayPal 结帐和 Facebook 登录在独立的网络应用程序中工作,而无需使用这种方法切换到 safari!如果您要提交表单,也可以通过 JS 执行此操作,并从响应中获取重定向 URL,然后设置位置。至于事后交还给您的应用程序,则取决于外部服务的工作方式。

alert('You will be passed to Safari for authentication. Reload this app afterwards.')如果这不好,您可以在他们切换到 Safari 之前弹出一个窗口。不是很好,但比自动切换应用程序让他们感到惊讶更好!

于 2011-08-31T20:27:09.233 回答
1

我假设您有一个“清单”元标记来引用 manifest.json 文件。

我建议您执行以下解决方法。它在 ios safari web 应用程序上完美运行:

https://stackoverflow.com/a/52286655/8390589

于 2018-09-12T02:37:19.310 回答