2014-12-21 64 views
2

我剛開始使用Adobe AIR應用程序。我做了一些問候世界,AIR似乎對於桌面應用來說是COOL。我的下一個目標是通過api連接到我的adobe air桌面應用程序。在Adobe AIR應用程序中創建API調用

我想在Adobe AIR應用程序中開始一個寧靜的服務,通過它我將指導AIR應用程序做什麼。 我們怎樣才能做到這一點?正在通過套接字連接,但多線程似乎是一個問題。在Adobe AIR應用程序ServerSocket將能夠處理多個請求?

有什麼選擇我可以將我的java webapp附加到Adobe AIR應用程序,他們可以互動?

請幫我一把。

編輯:

我上搜索網頁,發現類似 http://blog.brightworks.com/2008/03/26/a-simple-air-blazeds-remoting-example/

剛纔講的像一個新手,那會是件好事,ActiveMQ的運行和I(Web應用程序)發佈消息的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的周圍五,六年前的一次可怕的經歷。它速度慢,容易出錯,記錄不完整,不夠靈活,在桌面上運行時感覺「異類」。似乎沒有太大的變化。我強烈建議你谷歌的替代品,不要輕易選擇這個選擇!

+1

AIR不是Javascript。有一種方法可以使用HTML/Javascript或Actionscript構建AIR應用程序,但IME更典型的方式是Actionscript。 – Brian

+0

air允許使用javascript。動作和JavaScript大部分是相同的。這個問題沒有提到actionscript(除了在標籤中,不知道在我回答後是否改變了)。該代碼被用於生產和工作。那麼贊成什麼? – kritzikratzi

+0

這樣的未受教育的迴應。 – BotMaster

0

你絕對可以做到這一點。正如你所說的,一種選擇是使用ServerSocket。另一種選擇是將Java Web應用程序簡單嵌入AIR包中。有一個tutorial詳細介紹瞭如何使用Tomcat進行此操作,但基本原理很簡單。

  1. 將您的本機Windows/OSX/Linux應用程序嵌入到您的AIR項目中。
  2. 將一些代碼添加到您的安裝程序函數中,以將可執行文件(例如Tomcat + webapp)複製到applicationStorage目錄。
  3. 當您的AIR應用程序運行時,它可以通過HTTP或自定義套接字與您的網絡應用程序進行通信。
+0

謝謝!我正在閱讀教程。如果我理解正確,那麼讓tomcat webapp與Flex應用程序進行通信並命令它執行操作的示例。在我的第一部作品中,我想從兩個不同的請求中調用兩個相機。我會完成作業,看看它是否可以幫助我,然後將這個良好的答案接受:D :) – 89n3ur0n

+0

消息隊列像ActiveMq? – 89n3ur0n

+0

最簡單的是,我決定在AIR應用程序中運行計時器,它將調用我的API並查看是否要執行任何操作。乾杯! – 89n3ur0n

相關問題