События PhoneGap не работают в iphone - PullRequest
5 голосов
/ 12 октября 2011

У меня настоящая проблема с PhoneGap в iPhone с событиями. Приложение работает довольно гладко на моем устройстве Android, но на моем iPhone ничего не работает. Например, простой код, подобный этому:

<!DOCTYPE HTML>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;" />
    <meta charset="utf-8">
    <title>WayAcross Mobile Application</title>
    <link rel="stylesheet" href="css/jquery.css" />
    <link rel="stylesheet" href="css/screen.css" />
    <link rel="stylesheet" href="css/login.css" />      
    <script type="text/javascript" charset="utf-8" src="jquery/jquery.js"></script>
    <script type="text/javascript" charset="utf-8" src="jquery/jquery.mobile.js"></script>
    <script type="text/javascript" charset="UTF-8" src="javascript/mainJavascript.js"></script>
        <script type="text/javascript" charset="utf-8">

            // Call onDeviceReady when PhoneGap is loaded.
            //
            // At this point, the document has loaded but phonegap.js has not.
            // When PhoneGap is loaded and talking with the native device,
            // it will call the event `deviceready`.
            //
            function onLoad(){
                document.addEventListener("deviceready", onDeviceReady, false);
            }

            // PhoneGap is loaded and it is now safe to make calls PhoneGap methods
            //
            function onDeviceReady() {
                // Now safe to use the PhoneGap API
                alert('ready');
            }

            </script>
        <script type="text/javascript" charset="utf-8" src="javascript/phonegap.js"></script>
</head>
<body onload="onLoad()">

(это пример кода, который не работает с iPhone и работает с Android).

Я думаю, что это проблема с событиями, но я не уверен. Даже примеры кода в документах PhoneGap не работают. Моя среда:

  1. Mac OSX 10.7.1
  2. Xcode 4.1
  3. PhoneGap 1.1
  4. jQuery Mobile 1.0RC Единственное, что он мне показывает, это: http://cl.ly/0h462Y2D2F0J0B1B0q1M

Заранее спасибо.
С уважением,
Elkas


Кстати, сейчас я установил OSX Lion 10.7.2 и Xcode 4.2. Даже в IOS5 его не работает. Это сводит меня с ума!!! Даже с этим простым кодом не работает.

<!DOCTYPE html>
<html>
<head>
    <title>PhoneGap Device Ready Example</title>

    <script type="text/javascript" charset="utf-8">

        // Call onDeviceReady when PhoneGap is loaded.
        //
        // At this point, the document has loaded but phonegap.js has not.
        // When PhoneGap is loaded and talking with the native device,
        // it will call the event `deviceready`.
        // 
        document.addEventListener("deviceready", onDeviceReady, false);

        // PhoneGap is loaded and it is now safe to make calls PhoneGap methods
        //
        function onDeviceReady() {
            alert('Hello World');
        }

        </script>
    <script type="text/javascript" charset="utf-8" src="javascript/phonegap.js"</script>
</head>
    <body>
    </body>
</html>

Ответы [ 5 ]

1 голос
/ 20 июня 2012

При создании установки Phonegap для iOS используется определенная версия (т.е.) phonegap.1.4.1.js.

Замена только этого файла более новой версией (например, cordova.1.8.0.js) привели к тому, что оповещения не работают.

Если вы хотите перейти на более новую версию PhoneGap, вам придется «повторить» ваш проект.

Я вернулся к phonegap.1.4.1.JS и события волшебным образом начали работать снова.

1 голос
/ 13 октября 2011

попробуйте поместить прослушиватель addevent в document.ready вот так .. у меня сработало для той же проблемы.

$(document).ready(function(){
document.addEventListener("deviceready",function(){

},false);
});
1 голос
/ 13 октября 2011

Проблема решена !!

Я запустил приложение без phonegap.js, и оно создало мне новое.Я просто изменил название на то, которое я загружал, и приложение, наконец, работает.

0 голосов
/ 08 февраля 2017
function testDialog() {
    document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
        navigator.notification.alert("This is message", function(){}, "HaHa", "Done");
    }
}
0 голосов
/ 13 октября 2011

Здесь что-то вроде дикой догадки, не знаю, как вы скомпилируете эту вещь в приложение, но вы перечислили XCode так ... Разметка указывает на файлы сценариев в папках jquery / и javascript /.При компиляции приложения с помощью файлов XCode они не помещаются в фактические папки, представляющие групповые папки, которые вы обычно используете.Чтобы файлы действительно оказались в каталоге внутри приложения, вам нужно добавить папку на жестком диске в качестве ссылки на папку (они отображаются в виде синих папок, а не желтых).

Самый простой способчтобы проверить, является ли это проблемой, нужно просто удалить путь к папке, включенной в сценарий, чтобы он был просто именем файла.

...