Неправильная ссылка на файл Javascript? - PullRequest
0 голосов
/ 21 февраля 2012

Я работаю над установкой плагина PhoneGap на iPhone.Страницу для плагина, который я пытаюсь установить, можно увидеть здесь: https://github.com/phonegap/phonegap-plugins/tree/master/iPhone/MessageBox.

Я считаю, что сузил свою проблему до некорректной работы с файлом JavaScript.Я включил его в свою HTML-страницу следующим образом:

<script language="javascript" type="text/javascript" src="MessageBox.js"></script>

Остальная часть моей HTML-страницы такова:

<script type="text/javascript">
alert("test1");
var messageBox = window.plugins.messageBox;
alert("test2");
messageBox.alert('Title', 'Message', function(button) { console.warn('alert', [this, arguments]); });
</script>

Я вижу предупреждение, говорящее test1 , но не второе предупреждение.Это заставляет меня думать, что ошибка в строке:

var messageBox = window.plugins.messageBox;

Однако я не совсем уверен, что я должен делать по-другому.Из того, что я могу сказать, я выполнил все необходимые шаги, как описано на странице документации плагина, которую можно увидеть здесь: https://github.com/phonegap/phonegap-plugins/blob/master/iPhone/MessageBox/README.md

(Как и ожидалось, я также не вижу вывод сообщенияBox.alert.... строка при просмотре через симулятор iOS.)

Буду признателен за любую помощь в этом вопросе, спасибо!

ПРИМЕЧАНИЕ: мою первоначальную тему по этой теме можно посмотреть здесь: Неисправность при установке плагина PhoneGap

РЕДАКТИРОВАТЬ: Я должен также добавить, что у меня точно такая же проблема при попытке установить другой (но похожий) плагин, известный как "Prompt"

EDIT2: вот мой index.html:

    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>
    <script type="text/javascript" src="MessageBox.js"></script>
    <script type="text/javascript">

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


    function onDeviceReady()
    {
        navigator.notification.alert("PhoneGap is working");
        window.location.href="otherpage.html";
    } 
    </script>

1 Ответ

1 голос
/ 22 февраля 2012

Проблема в том, что при попытке создать MessageBox PhoneGap еще не готов.

Вам нужно подождать, пока PhoneGap будет готов, прежде чем выполнять свой код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>

    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>
    <script type="text/javascript" charset="utf-8">
        document.addEventListener("deviceready", onDeviceReady, false);

        function onDeviceReady() {
            window.location="otherpage.html";
        }
    </script>
</head>
<body>
</body>
</html>

Тогда на otherpage.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script>
    <script type="text/javascript" charset="utf-8" src="MessageBox.js"></script>

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

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

        // PhoneGap is loaded and it is now safe to make calls PhoneGap methods
        //
        function onDeviceReady() {
            console.log("onLoad");
            var messageBox = window.plugins.messageBox;
            messageBox.alert('Title', 'Message', function(button) { console.warn('alert', [this, arguments]); });
        }  
    </script>
</body>
</html>

Я тестировал его на PhoneGap 1.4.1

...