2014-12-21 3 views
2

Я только что начал с приложений Adobe Air. Я сделал несколько миров приветствия, и AIR, похоже, COOL для настольных приложений. Следующей моей целью является подключение к моему adobe air desktop application через api.Создание вызовов API в приложении adobe air

Я хочу начать спокойную службу здесь, в adobe air application, через которую я буду направлять приложение AIR, что делать. Как мы можем достичь этого? Происходило через соединения сокетов, но многопоточность кажется проблемой. ServerSocket в adobe air app сможет обрабатывать несколько запросов?

Есть ли какой-либо вариант, я могу прикрепить свой java webapp в adobe air app, и они могут взаимодействовать?

Пожалуйста, помогите мне.

EDIT:

Я искал по сети и нашел что-то вроде http://blog.brightworks.com/2008/03/26/a-simple-air-blazeds-remoting-example/

Просто говорить, как новичок, было бы хорошо иметь ActiveMQ работает и я (WebApp) опубликовать сообщение для ActiveMQ и мой клиент flex является потребителем, получающим сообщение для соответствующей темы, а затем выполняет операции как я хочу? Было бы хорошо? У меня есть что-то здесь http://www.adobe.com/devnet/flex/articles/flex-apache-nms.html

Обновите!

Благодаря Эрвинд

ответ

-3

Воздух Javascript, поэтому вы можете использовать XmlHTTPRequest для выполнения запросов.

Я отрезал это из старого кода производства, вам, возможно, придется изменить линию здесь или там. Оригинальный код здесь: CommandProxy.js

/** 
* Make a call to a web service 
* 
* @param command The name of the command 
* @param parameters A map of parameters, e.g. { "file": "/myfile.pdf" } 
* @param (optional) callback, a function with one parameter, that will be given a json object when the result is ready. 
*/ 
function callWebservice(url, parameters, callback){ 

    var async = (typeof (callback) == "function"); 

    if(!parameters) 
     parameters = {}; 

    var paramString = ""; 
    for(var param in parameters){ 
     paramString += encodeURI(param) + "=" + encodeURI(parameters[param]) + "&"; 
    } 

    var req = new XMLHttpRequest(); 
    req.open("POST", url, async); 

    req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    req.setRequestHeader("Content-length", paramString.length); 
    req.setRequestHeader("Connection", "close"); 
    if(async){ 
     req.onreadystatechange = function(){ 

      if(req.readystate == 4 && callback) { 
       if(req.status == 200){ 
        callback(JSON.parse(req.responseText)); 
       } 
       else{ 
        callback({ "error" : req.responseText }); 
       } 
      } 
     }; 
     req.send(paramString); 
    } 
    else{ 
     req.send(paramString); 
     var ret = JSON.parse(req.responseText); 

     return ret; 
    } 
} 

На стороне записки: Я сделал ужасный опыт работы с Adobe Air вокруг пять-шесть лет назад. Он был медленным, подверженным ошибкам, плохо документированным, не очень гибким, и он чувствует себя «чужими» при запуске на рабочем столе. Кажется, не так много изменилось. Я настоятельно рекомендую вам Google для альтернатив, не принимайте этот выбор легкомысленно!

+1

AIR не является Javascript. Существует способ создания приложения AIR с использованием HTML/Javascript или ActionScript, но IME более типичным способом является ActionScript. – Brian

+0

Воздух позволяет использовать javascript. actionscript и javascript в основном одинаковы. в вопросе не упоминается actioncript (кроме тегов, не уверен, что это было изменено после того, как я ответил).код использовался в производстве и работает. так что же с downvotes? – kritzikratzi

+0

такой необразованный ответ. – BotMaster

0

Вы можете определенно сделать это. Один из вариантов - использовать ServerSocket, как вы уже сказали. Другой вариант - просто встраивать свое веб-приложение Java в пакет AIR. Существует tutorial, который подробно описывает это с помощью Tomcat, но основной принцип прост.

  1. Внесите изменения в свое приложение Windows/OSX/Linux в проекте AIR.
  2. Добавьте код в свою программу установки, чтобы скопировать исполняемый файл (например, Tomcat + webapp) в каталог applicationStorage.
  3. Когда приложение AIR запускается, оно может связываться через HTTP или пользовательские сокеты с вашим веб-приложением.
+0

Спасибо! Я перехожу к учебнику. Если я правильно понимаю, пример, чтобы tomcat webapp связывался с гибким приложением и приказывал ему выполнять операции. В моей первой работе я хочу вызвать две камеры из двух отдельных запросов. Я закончу домашнее задание и посмотрю, поможет ли он мне тогда пометит этот хороший ответ: D :) – 89n3ur0n

+0

Очереди сообщений, такие как ActiveMq? – 89n3ur0n

+0

Проще всего, я решил запустить таймер здесь, в приложении AIR, который будет вызывать мой API и посмотреть, будет ли выполняться какая-либо операция. Ура! – 89n3ur0n

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