<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
$('#btn-fb-share').click(function() {
$('#btn-fb-share').attr("disabled", "disabled");
window.open(url,"Mywindow","location=yes,menubar=yes");
});
在我的Ipad上(我在主屏幕上显示网站的快捷方式)链接无法在新窗口(Safari)中打开。我怎么解决这个问题?在我的电脑上,链接在新窗口中正确打开。
编辑:我会尽力解释清楚。发生了什么:我的网络应用程序打开了与我的应用程序相同的窗口中的URL。
应该发生的事情是:Facebook页面在Safari中的新标签页面中打开。 (如果我通过safari而不是通过我的网络应用程序打开我的网站,我可以证明这一点。)
我希望你现在可以看到差异。我需要在新的标签页面中打开Safari中的链接。但是现在它在我的窗口中保持打开状态,在那里我没有“返回按钮”。
这两张照片的唯一区别是。第一张图片是我的主屏幕上保存的网站。第二张图片是直接在Safari中打开的网站。
答案 0 :(得分:4)
谷歌搜索并找到了this thread on macrumors.com,并提出了相同的问题解释:
对于我想在WebApp中打开但未在Safari中打开的链接,我使用:
<a onclick="parent.location='http://url.com/page.html'">Link</a>
对于我想在Safari中打开的链接,我使用标准的HTML链接:
<a href="http://url.com/another_page.html">Link</a>
所以我进行了另一次Google搜索,找到了如何检测您是否在JavaScript中使用iOS:http://forrst.com/posts/JavaScript_iOS_Detection-Ofa
这是我的解决方案:
var url = "http://www.google.com/";
// Get the user agent string
var deviceAgent = navigator.userAgent;
// Set var to iOS device name or null
var ios = deviceAgent.toLowerCase().match(/(iphone|ipod|ipad)/);
$('#btn-fb-share').click(function() {
if (ios) {
// This is the line that matters
$(this).attr('href', url);
} else {
// Your code that works for desktop browsers
$('#btn-fb-share').attr("disabled", "disabled");
window.open(url,2789432749274249,"location=yes,menubar=yes");
}
});
我在Chrome桌面上测试了它,在iOS上从Safari和主屏幕WebApp测试了它。以下是我的工作测试的链接:http://flackend.com/other/ios-test/
请注意,您需要将链接的target
设置为_blank
,以便在iOS上的Safari中的新标签页中打开(如果您在Safari应用中打开它,则不是来自WebApp实例) 。您可以直接在HTML标记中设置它,也可以使用attr
使用jQuery进行设置。