如何在特定视图中强制定向模式
how to force orientation mode in a particular view
使用 angularjs 作为前端框架制作一个 cordova 应用程序。我希望 phonegap/cordova 应用程序中的特定视图以横向模式显示。到目前为止,我探索过的各种选项是:
- 设置config.xml。但是,只有当您希望整个应用程序为纵向或横向时,您才会想要这个
- 添加 manifest.json。 (还要注意我的 config.xml 中没有定义任何方向设置)。我的计划是在我想将方向设置为横向时有条件地包含该文件。
所以对于第二个选项,我在我的页面中编写了代码,例如:
<link rel="manifest" href="manifest.json" ng-if="orientation == 'landscape'">
...并在控制器中切换 orientation
的值 - 目的是按需强制它。
但是上面的方法是行不通的。
关于如何使这项工作有任何想法吗?
我不知道 angularjs 部分。但您可以 try/use Orientationlock plugin 动态锁定和解锁方向。
来自插件描述
从您的 JavaScript 代码调用 window.plugins.orientationLock.unlock()
解锁方向,window.plugins.orientationLock.lock("portrait")
或 window.plugins.orientationLock.lock("landscape")
将屏幕锁定到指定方向。
在你的 Cordova activity.
的 onCreate() 中启动你的 Cordova 应用程序预锁定位置 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
解锁后,您可以使用常规 orientationchange 事件跟踪方向变化:
window.addEventListener("orientationchange", function() {
alert(window.orientation);
});
使用 angularjs 作为前端框架制作一个 cordova 应用程序。我希望 phonegap/cordova 应用程序中的特定视图以横向模式显示。到目前为止,我探索过的各种选项是:
- 设置config.xml。但是,只有当您希望整个应用程序为纵向或横向时,您才会想要这个
- 添加 manifest.json。 (还要注意我的 config.xml 中没有定义任何方向设置)。我的计划是在我想将方向设置为横向时有条件地包含该文件。
所以对于第二个选项,我在我的页面中编写了代码,例如:
<link rel="manifest" href="manifest.json" ng-if="orientation == 'landscape'">
...并在控制器中切换 orientation
的值 - 目的是按需强制它。
但是上面的方法是行不通的。
关于如何使这项工作有任何想法吗?
我不知道 angularjs 部分。但您可以 try/use Orientationlock plugin 动态锁定和解锁方向。
来自插件描述
从您的 JavaScript 代码调用 window.plugins.orientationLock.unlock()
解锁方向,window.plugins.orientationLock.lock("portrait")
或 window.plugins.orientationLock.lock("landscape")
将屏幕锁定到指定方向。
在你的 Cordova activity.
的 onCreate() 中启动你的 Cordova 应用程序预锁定位置setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
或 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
解锁后,您可以使用常规 orientationchange 事件跟踪方向变化:
window.addEventListener("orientationchange", function() {
alert(window.orientation);
});