首页 > 解决方案 > cordova-camera plugin - 插件使应用程序在拍照后进入纵向模式

问题描述

我正在使用 AngularJS 1.5、Ionic 1 和 Cordova CLI 8 编写应用程序。

我正在使用 cordova-camera 插件来拍照。我的应用程序仅限纵向。不支持横向。

用户拍照后,整个应用程序暂时进入横向模式。它会自行解决,但看起来令人担忧。我怎样才能防止这种情况发生?

"cordova-android": "^8.0.0"
"cordova-plugin-camera": "^4.0.3"

Ionic:

ionic (Ionic CLI) : 4.12.0 (C:\Program Files\nodejs\node_modules\ionic)
Ionic Framework : ionic1 1.3.5
@ionic/v1-toolkit : 1.0.22

Cordova:

cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : android 8.0.0
Cordova Plugins : no whitelisted plugins (15 plugins total)

System:

Android SDK Tools : 26.1.1 (C:\Users\aubrey\Documents\AndroidSDK)
NodeJS : v8.16.0 (C:\Program Files\nodejs\node.exe)
npm : 6.4.1
OS : Windows 10

cordova requirements

Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-28
Gradle: installed C:\Users\XYZ\Documents\Android\gradle\gradle-5.3.1\bin\gradle

在此处输入图像描述

编辑:我将这些选项传递给相机插件:

    var options = {
        targetWidth: 150,
        targetHeight: 150,
        quality: 50,
        destinationType: Camera.DestinationType.DATA_URL,
        sourceType: Camera.PictureSourceType.CAMERA,
        allowEdit: false,
        encodingType: Camera.EncodingType.JPEG,
        popoverOptions: CameraPopoverOptions,
        saveToPhotoAlbum: false,
        correctOrientation: true
    };

标签: cordovaionic-frameworkcordova-plugins

解决方案


在您的相机配置中,correctOrientation: true已设置,这可能是文档所说的问题,它将更正设备方向。请将其更改为false.

您还应该orientation使用以下代码在 config.xml 中锁定屏幕

<preference name="orientation" value="portrait" />

如果问题仍然存在,您可以安装cordova-plugin-screen-orientation插件并锁定方向。

cordova plugin add cordova-plugin-screen-orientation

该插件将以下内容添加到屏幕对象(window.screen)

// lock the device orientation
.orientation.lock('portrait')

// unlock the orientation
.orientation.unlock()

// current orientation
.orientation

推荐阅读