Как запустить PHP-код внутри Cordova?

Я новичок в Cordova и хочу перенести свою существующую сборку приложений с помощью jquery mobile и php на iOS / Android. Я прав, что внутри Cordova нет переводчика php? Это означало бы, что существующее приложение не может быть перенесено в Cordova, так как php является центральным компонентом в создании этих HTML-файлов внутри проекта. Это сделало бы это бесполезным для меня.

Есть ли способ запустить PHP-код внутри Cordova?

7

Решение

Вы не можете использовать какой-либо серверный язык сценариев (например, PHP) внутри cordova. Но используя Jquery и AJAX, вы можете вызывать функции php и легко получать данные.

6

Другие решения

PHP работает на стороне сервера; Cordova упаковывает ваше приложение в клиентское приложение.

Если вы действительно хотите использовать сгенерированный вашим сервером PHP HTML, а не статический HTML в своем клиентском приложении, вы можете упаковать практически пустой HTML-файл и динамически извлекать HTML с вашего PHP-сервера, AJAX или иным образом.

В наше время, с приложениями AJAX и HTML5, большинство людей скажут вам, что роль сервера не должна заключаться в генерации HTML-файлов; это должно быть для генерации данных (JSON) через API. Если вы переключитесь на такую ​​архитектуру, вы обнаружите, что есть гораздо больше инструментов, которые вы можете легко использовать.

3

На самом деле, вы можете использовать Quercus в Java для передачи параметров HTTP в интерпретатор PHP, не требуя IP-порта (вы можете создать объект данных, содержащий HTTP-запрос) и для IOS, что-то вроде https://github.com/grantjbutler/PHPTest.

Существуют и другие встраиваемые решения для IOS, я могу отредактировать этот ответ в ближайшем будущем.

1

Быстрый поиск дал такой результат: Quercus: PHP в Java (с открытым исходным кодом, 100% Java-реализация php), поэтому можно написать плагин, который будет выполнять ваш php-код, возможно, с небольшими изменениями. А затем выставить его в window.Plugin.method() как и другие плагины (как этот Cordova-плагин-оболочка-Exec).

0
По вопросам рекламы [email protected]