【问题标题】:how to force orientation mode in a particular view如何在特定视图中强制定向模式
【发布时间】:2015-01-23 19:53:05
【问题描述】:

用 angularjs 作为前端框架做一个科尔多瓦应用程序。我希望 phonegap/cordova 应用程序中的特定视图以横向模式显示。到目前为止,我探索的各种选项是:

  • 设置config.xml。但是,只有当您希望整个应用处于纵向或横向时,您才需要这样做
  • 添加manifest.json。 (还要注意我的 config.xml 中没有定义任何方向设置)。当我想将方向设置为横向时,我的计划是有条件地包含该文件。

所以对于第二个选项,我在我的页面中编写了代码,例如:

<link rel="manifest" href="manifest.json" ng-if="orientation == 'landscape'">

...并在控制器中切换 orientation 的值 - 旨在按需强制它。

但是上述方法不起作用。

你知道如何进行这项工作吗?

【问题讨论】:

    标签: angularjs cordova orientation


    【解决方案1】:

    我不知道 angularjs 部分。但您可以尝试/使用Orientationlock plugin 动态锁定和解锁方向。

    来自插件描述

    从您的 JavaScript 代码调用 window.plugins.orientationLock.unlock() 解锁方向,window.plugins.orientationLock.lock("portrait")window.plugins.orientationLock.lock("landscape") 将您的屏幕锁定到指定方向。

    要启动您的 Cordova 应用程序,请在您的 Cordova 活动的 onCreate() 中预先锁定 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    解锁后,您可以使用常规orientationchange 事件跟踪方向变化:

    window.addEventListener("orientationchange", function() {
       alert(window.orientation);
    }); 
    

    【讨论】:

    • 我认为插件的描述是不言自明的。无论如何更新了答案.. :)
    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多