Изменение ориентации Javascript не работает с PhoneGap на iPad - PullRequest
3 голосов
/ 23 августа 2010

Я адаптирую небольшой веб-журнал на основе HTML / CSS / Javascript в качестве iApp для iPad с отличной мобильной платформой PhoneGap.Все отлично работает, кроме изменения ориентации из портретного в альбомный режим.

Я использую следующий код Javascript в заголовке index.html (портрет):

  var isiPad = navigator.userAgent.match(/iPad/i) != null;
  var isiPhone = navigator.userAgent.match(/iPhone/i) != null;

  function updateOrientation() {
   if (isiPad || isiPhone) {
    switch (window.orientation) {
     case 90:
      window.location = "index_landscape.html";
      break;
     case -90:
      window.location = "index_landscape.html";
      break;
    }
   }
  }

со следующимтег body:

<body onorientationchange="updateOrientation();">

Если я поверну iPad в альбомный режим, он не изменится на index-landscape.html.

Кто-нибудь знает, в чем проблема?Разве нельзя изменить файл HTML при изменении ориентации в рамках PhoneGap?Другими словами, могу ли я использовать один HTML-файл (index.html) с PhoneGap и использовать CSS для изменения ориентации?

Если я проверю приложение как веб-сайт сбраузер iPad Safari, изменение ориентации работает правильно.

Спасибо за любую помощь!

1 Ответ

3 голосов
/ 23 августа 2010

Я только что нашел другое решение проблемы.Я использую функцию загрузки тела с функцией onDeviceReady из phonegap.js для проверки ориентации:

Теперь следующий код JavaScript работает правильно:

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

    function onDeviceReady() {
        document.addEventListener("orientationChanged", updateOrientation);
    }

    function updateOrientation(e) {
        switch (e.orientation) {
            case 90:
                window.location = "index_landscape.html";
                break;
            case -90:
                window.location = "index_landscape.html";
                break;
        }
    }

ОБНОВЛЕНИЕ: Это работало большечем два года назад со старыми версиями Phonegap и iOS SDK, но, по мнению некоторых пользователей, он больше не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...