我想重定向到 Phonegap 中的另一个页面。
我在 javascript 中编写了以下代码,但它没有被重定向:
window.location.href = "http://www.google.com";
谁能告诉它为什么不起作用?
您必须通过配置白名单来允许在应用程序内导航外部站点。
你必须使用allow-navigation
这样的标签:
<allow-navigation href="http://www.google.com/*" />
你检查过你的框架初始化了吗?在尝试更改页面之前,请确保 jquery 和 phonegap 已完全加载。否则 phonegap 会挂起并中断。
尝试不使用href
:
window.location = "http://www.google.com";
尝试执行以下操作:
打开你的文件Cordova.plist
文件
右键单击ExternalHosts
->Add Row
将String
新添加的行的值设置为*
。
因此,您应该有这样的新添加行:
Item0 String *
通常,您应该替换*
为您想要提供访问权限的外部 URL(http://www.google.com
例如),但我曾经*
确保问题是否来自那里。
有关更多信息,请查看在线文档的“域白名单指南”部分:http: //docs.phonegap.com/en/2.1.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide。
这是一个简单的工作示例,使用window.location.href
:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" charset="utf-8">
function init() {
window.location.href = "http://www.google.com";
}
</script>
</head>
<body onload="init();">
</body>
</html>
让我知道这个是否奏效。
很可能是您要移动到的页面。该页面是否包含 phongap.js 文件等?
尝试一个简单的测试:创建一个新的 HTML 页面,其中只有基本元素和正文中的几个单词,这样你就知道你在那里了。将其保存为 test.html。现在试试 window.location="test.html"。
如果这有效,那么您就知道这是新页面中的内容。祝你好运!
使用 Cordova 4 对我来说工作得很好。您可以尝试使用 Google Chrome 进行远程调试并查看 Javascript 控制台中发生的情况吗?
如果您使用 like window.location
orwindow.location.href
并且它在 IOS 或 safari 中仍然不起作用。
你可以使用这个:
var isAndroid = !!navigator.userAgent.match(/android/ig);
var targetUrl = 'your url';
window.location = targetUrl;
if(!isAndroid) {
var doc = window.document,
ifr = doc.createElement('iframe');
ifr.src = targetUrl;
ifr.style.cssText = 'display:none;';
doc.body.appendChild(ifr);
}