2016-03-16 3 views
1

Я хочу, чтобы мое приложение всегда было в портрете, поэтому в файле config.xml у меня есть эта строка.Кордова обнаруживает ориентацию экрана, когда Ориентация = «портрет»

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

Который работает просто отлично.

Проблема в том, что после этого я не могу определить ориентацию экрана.

Я попытался с

function doOnOrientationChange() { 
    console.log(window.orientation); 
} 

window.addEventListener('orientationchange', doOnOrientationChange); 

doOnOrientationChange(); 

Этот код показывает мне 0, когда мой телефон в портретном и 180 когда вверх-вниз, но ничего, когда в альбомной (не 90 ни -90).

Я видел этот плагин https://github.com/gbenvenuti/cordova-plugin-screen-orientation, который, по-видимому, используется многими людьми, но я не могу заставить его работать на моем iPhone 6S (iOS9), посмотрев на проблемы, кажется, что я не единственный ...

Прямо сейчас я не знаю, куда идти, поэтому любая помощь будет очень признательна!

+0

В iOS9 они ограничили так много функциональных возможностей для работы по соображениям безопасности, вам необходимо обновить файл info.plist с некоторыми атрибутами плагина ориентации экрана для работы –

+0

Спасибо за ваш ответ, есть ли у вас дополнительная информация об этих атрибутах ? – PeterPan666

ответ

0

Проблема в том, что эти функции или плагины возвращают ориентацию SCREEN, а не ориентацию DEVICE. Именно поэтому вы получите только 0 или 180. Возможно, вам нужно использовать этот плагин, который считывает компас устройства, так что вы можете получить то, что вы хотите

https://github.com/apache/cordova-plugin-device-orientation

Счастливый кодирования!

+0

Да, подумал об этом, но, похоже, слишком сложно использовать компас или акселерометры, чтобы узнать, не повернул ли он телефон, я не могу поверить, что это лучшее решение ... – PeterPan666

Смежные вопросы