我正在使用一个小型HTML / CSS / Javascript驱动的网络杂志作为iPad的iApp,使用优秀的移动框架PhoneGap。除了从纵向模式到横向模式的方向变化外,一切都很有效。
我在index.html(肖像)的标题中使用以下Javascript代码:
var isiPad = navigator.userAgent.match(/iPad/i) != null;
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
function updateOrientation() {
if (isiPad || isiPhone) {
switch (window.orientation) {
case 90:
window.location = "index_landscape.html";
break;
case -90:
window.location = "index_landscape.html";
break;
}
}
}
使用以下正文标记:
<body onorientationchange="updateOrientation();">
如果我将iPad旋转到横向模式,它不会更改为index-landscape.html。
有人知道问题出在哪里吗? 在改变PhoneGap框架内的方向时,是否可以更改HTML文件? 换句话说,我是否只能将一个 HTML文件(index.html)与PhoneGap一起使用,并且必须使用CSS进行方向更改?
如果我使用iPad Safari浏览器将该应用程序检出为网站,则方向更改将正常运行。
感谢您的帮助!
答案 0 :(得分:3)
我刚刚找到了另一个问题的解决方案。我使用body onload函数和phonegap.js中的onDeviceReady函数来检查方向:
以下javascript代码现在可以正常运行:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
document.addEventListener("orientationChanged", updateOrientation);
}
function updateOrientation(e) {
switch (e.orientation) {
case 90:
window.location = "index_landscape.html";
break;
case -90:
window.location = "index_landscape.html";
break;
}
}
更新:这项工作在两年多以前使用旧版本的Phonegap和iOS SDK,但根据一些用户的说法,它不再适用了。