Если у вас есть мак с установленным апачем и php с помощью простого веб приложения легким движением руки iPhone превращается в пульт управления.
Как все это работает? Да очень просто. Наш iPhone через сафари будет посылать запрос php скрипту, который в свою очередь будет выполнять AppleScript, ну а уж он будет посылать команды приложениям.
И так поехали. Для начала научим наше приложение управлять iTunes и QuickTime Player, какие еще команды будет уметь выполнять приложения будет зависеть только от вашей фантазии.
Для начала в файле commands.php опишем обработку запросов и выполнение комманд. Приведу полный текст скрипта.
Цитата:
Думаю тут все понятно. В зависимости от полученной команды выполняется определенный скрипт. Команды AppleScript будет выполнять через вызов утилиты osascript с помощью функции exec()
Цитата:
exec('osascript -e \'' . $cmd . '\'');
Обработчик есть, теперь напишем страницу с которой мы собственно и будет всем управлять.
Цитата:
iRemote
QuickTime
Play
Pause
Fullscreen
Close
iTunes
Play
Pause
Next Song
Previous Song
Строка
Цитата:
указывает, что наша страница будет занимать всю ширину экрана и не будет изменять свои размеры. Для того чтобы придать нашей странице вид обычного приложения подключим style.css в котором пропишем несколько стилей для iPhone (стили взял с сайта apple, поэтому привожу как есть).
Цитата:
body
{
margin: 0;
padding: 0;
margin-left:10px;
background-color: rgb(197,204,211); /* Set the page color to light blue */
-webkit-text-size-adjust:none; /* Turn off font resizing */
}
font-size:17px;
font-family: Helvetica;
font-weight:bold;
color: rgb(76,86,108); /* Set each label color */
}
ul
{
padding: 0;
margin-top:0;
margin-right:10px;
margin-bottom:17px; /* Set each list 17 pixels from the top of the button bar(or the top of the next list) */
width: 300px;
background-color: white; /* Each list has a white background fill */
border-width: 1px; /* Draw a rectangle around each list */
border-style:solid ;
border-color:rgb(217,217,217);
-webkit-border-radius: 8px; /* Round each corner of the created rectangle */
}
li
{
list-style-type: none;
border-top-width:1px; /* Create lines between cells. Each line is placed above each item */
border-top-style:solid;
border-top-color:rgb(217,217,217);
padding-top:10px;
padding-right:10px;
padding-bottom:14px; /* Indent the cell content 14 pixels from the bottom edge of a cell */
padding-left:10px;
}
li:first-child
{
border-top:0; /* Remove border above the first item of the list */
}
a /* Handle the click/tap highlight. Highlight an entire cell with the iPhone grey background when tapped */
{
display: block; /* Sets the href to be a block rather than inline */
/* The padding properties adjust the text content within the href block */
padding-top: 8px;
padding-right: 8px;
padding-bottom: 12px;
padding-left: 8px;
/* The margin properties adjust the size of the href block */
margin-top: -8px;
margin-right: -8px;
margin-bottom: -12px;
margin-left: -8px;
text-decoration: none;
color:black;
}
В итого на iPhone мы должны увидеть примерно следующее
Некоторые могли заметить, что рядом с заголовком iTunes выводится название текущее трека, для этого на страницу добавим пару строк
Цитата:
QuickTime -
Этот код будет выводить название файла загруженного в QuickTime
Цитата:
iTunes -
А этот выведет название текущего трека.
Вот мы и сделали наше веб приложение для Iphone'а. Спасибо за внимание.