2012-04-11 6 views
1

У меня есть HTML-страница внутри моего телефона, которая запрашивает имя пользователя и пароль. Когда нажата кнопка отправки, она проверит базу данных для существующих пользователей, используя файл PHP, который я загрузил на сервер.Android phonegap с использованием локального html и удаленного php

Проблема в том, что после успешного входа в систему, как я могу перенаправить из файла PHP на страницу моего главного меню, являющуюся HTML-файлом внутри моего телефона?

В PHP, я увидел этот код, который перенаправляет его на другую страницу,

заголовок ("Файл: ///android_asset/www/mainMenu.html");

Я попытался изменить его, но он все еще не работает. Может ли кто-нибудь помочь?

+0

Я думаю, что это должен быть заголовок («Местоположение: файл: //android_asset/www/mainMenu.html»); –

+0

мой плохой, забыл о местонахождении .. но все равно не работает .. это дает мне 500 ошибок что-то .. –

ответ

2

Невозможно перенаправить функцию заголовка PHP на локальную страницу, хранящуюся на устройстве, поскольку страницы на вашем локальном устройстве не размещены на веб-сервере, и поэтому удаленный веб-сервер не может адресовать их с помощью http:// URL.

Вместо этого вы можете вернуть PHP пустую страницу, содержащую фрагмент кода JavaScript в заголовке, который перенаправляет мобильный браузер в локальный файл HTML (файл: ///android_asset/your_file.html), используя окно .location.href или window.location.replace. Это работает, потому что JavaScript выполняется на устройстве и, следовательно, знает о файлах в локальной файловой системе.

EDIT: Ваш blank.html должен выглядеть следующим образом:

<html> 
<head> 
    <script type="text/javascript"> 
     window.location.href = 'file:///android_asset/my_local_page.html'; 
    </script> 
</head> 
<body> 
</body> 
</html> 

В приведенном выше тексте вместо my_local_page.html с главной страницы меню. Затем поместите blank.html на свой сервер и используйте заголовок PHP() для перенаправления на blank.html.

+0

спасибо, сэр .. попробует .. –

+0

спасибо, сэр .. По крайней мере, я знаю, что есть решение этого. . не могли бы вы поделиться с этим примером кода .. i kinda new .. Итак, что я понимаю, в моем php-файле, который размещен на сервере, который проверяет логин, мне нужно поместить этот заголовок («location: blank. php "), и внутри the blank.php мне нужно поставить этот код? «Window.location.href = "file: ///android_asset/www/mainMenu.html" " –

+0

См. мой отредактированный пост выше. – Theo

1

При создании приложения html5 + javascript с использованием рамки phonegapp (или другой платформы webapp для мобильности) мне не нравится смешивать локальную и удаленную страницу html. Отображаемые страницы либо полностью локальные, либо удаленные, но не смешиваются. Когда я предпочитаю использовать полностью локальный дисплей, но для вызова удаленного сервиса, я использую ajax-запросы.

Предлагаю вам сделать то же самое. Поэтому позвоните в свой php-логин с помощью ajax, а затем измените страницу своего телефона на успех. Например, ваш php-скрипт может вернуть простую строку, которая может быть либо «succes», либо «fail». Затем вы можете выполнить необходимое изменение страницы в приложении phonegap.

С уважением

0

Мне нравится ваше предложение, чтобы придерживаться только локальных HTML-файлов. Я также делаю это так же. Но я должен реализовать платежный шлюз, используя локальный html. Таким образом, управление переходит на удаленный сервер (я не могу это сделать через ajax, потому что API недоступен). Теперь, как я могу вернуться в свою локальную папку. Одним из решений является отправка страницы с сервера с параметрами оплаты, которые, в свою очередь, будут вызывать локальные html-файлы через javascript. Можете ли вы предложить мне лучший способ сделать это?

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