可以打开iPhone Safari并定位特定窗口吗?

时间:2009-10-30 19:33:38

标签: iphone safari window target openurl

我有一个使用OAuth进行身份验证的应用,这意味着必须将用户定向到网站以授权该应用。我更倾向于向用户表明他们使用标准浏览器在原始网站上进行授权,而不是仅仅使用Web视图来显示我的应用程序中的内容。但是,每次将它们定向到Safari(通过openURL)时,它都会启动一个新的Safari窗口,一旦Safari打开了8个窗口,它根本就无法工作。

我想知道在html中是否存在与锚标记的“target”属性相等,这将允许我从我的应用程序中的所有openURL调用在同一窗口中打开。

我可以通过Web应用程序公开其他功能,在Safari中创建本机iphone功能和Web应用程序功能之间的混合应用程序,但如果每次在应用程序和Safari之间切换时都必须启动新窗口,它变得不可行了。 Youtube应用程序显然能够在显示视频后将用户返回到上一页,但这可能是Safari for iphone中的自定义插件。此外,虽然返回上一页有点有用,但将它们发送到现有窗口中的新URL确实会带来很多可能性。

2 个答案:

答案 0 :(得分:3)

我很确定无法将目标参数传递给openURL:

我注意到Safari的一个问题是,如果您在openURL:打开的页面已经在Safari中打开,它将无法打开另一个标签页。它只是重新加载该页面。这可能听起来微不足道,但没有帮助,但如果您可以使您的Web应用程序只使用一个页面,也许您可​​以使用它。可以使用#anchor标记表达不同的观点或状态。

一个例子是http://m.flickr.com。注意他们的URL结构?它是http://m.flickr.com/#/homehttp://m.flickr.com/#/explore/interesting/http://m.flickr.com/#/search等等。所有这些都是针对用户的不同网页,但对于Safari来说,它们都是相同的页面。

答案 1 :(得分:0)

我发现iOS 6.0.1 Safari将使用简单的标签打开相同的标签,没有斜杠。因此,使用上面的示例http://m.flickr.com,openURL到http://m.flickr.com#someinfo会打开相同的标签。

在您的网页中,使用window.location.hash返回参数。在上面的例子中,它将返回#someinfo。