【问题标题】:Phonegap orientation preference depending on screen sizePhonegap 方向偏好取决于屏幕尺寸
【发布时间】:2015-01-06 11:01:50
【问题描述】:

我正在使用 phonegap 构建一个多平台应用程序。 在普通和大屏幕上,该应用程序更易于在横向上使用,但在小型设备(即手机或引导超小型设备)上更易于在纵向上使用。

我想知道是否有办法使用 config.xml 根据屏幕大小强制定向。 我在网站上四处寻找答案,但我只找到了特定平台的答案。但我的应用是 HTML5 中的网络应用,所以我没有任何清单或 plist。

这就是我想使用 config.xml 文件的原因。

编辑:

谢谢!我尝试了 yoik 插件,但我不知道如何导入插件。我尝试添加:

<gap:plugin name="net.yoik.cordova.plugins.screenorientation" />

在我的 config.xml 中,但它似乎不起作用。

我的代码现在是这样的:

function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    // device APIs are available
    //
    function onDeviceReady() {
        if (window.outerWidth < 768) {
            screen.lockOrientation('portrait');
            document.location.href = 'www.site.com';
        }
        else {
            screen.lockOrientation('landscape');
            document.location.href = 'www.site.com' ;
        }
    }

【问题讨论】:

  • 所以你使用的是PhoneGap Build,对吧?
  • 是的,插件出现在插件列表中,但我的代码不起作用。
  • 是否定义了 screenscreen.lockOrientation(检查添加 alert(typeof screen + " " + typeof screen.lockOrientation))? PGB 是否选择最新版本(即 1.3.2)?您使用的是哪个平台?
  • 我的手机上没有出现警报,pgb 选择了 1.3.1,我在 ios(7) 和 android(lollypop) 上进行了尝试。它在平板电脑上将屏幕锁定为横向,但在手机上它只是将第一个方向设置为纵向但不锁定旋转。但是 document.location.href 不起作用,我总是停留在第一页。
  • 事实上它在这两个平台上都不起作用...

标签: cordova


【解决方案1】:

我认为仅使用 config.xml 没有办法做到这一点(至少对于所有平台)。如果你不一定非要使用config.xml,你可以使用yoik 的thishandy plugin。该插件的使用示例

// set to either landscape
screen.lockOrientation('landscape'); // Or portrait

// allow user rotate
screen.unlockOrientation();

只需将锁定放入您的 deviceReady 事件处理程序,并使用适当的条件来匹配屏幕尺寸要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多