Open a Native AIR app via URL?

2019-02-10 08:53发布

I'd like people to have the ability to launch a Native AIR app via URL. My AIR app would read some parameters on it and open to the correct state.

So the use case would be someone would be browsing our site, then would click on a link, and it would open the native desktop app to the correct content that's associated to their link.

I know iTunes does this, and other apps support it.

I know AIR (non-native) installer supports this too.

I don't know if I can do this with a native AIR app (.exe or .dmg install).

Edit: This is for the desktop.

标签: air
3条回答
地球回转人心会变
2楼-- · 2019-02-10 09:24

Ok so this is how you do that for desktop applications.

-First of all in the application descriptor file set allowBrowserInvocation to true: true (http://livedocs.adobe.com/flex/3/html/help.html?content=File_formats_1.html#1043413)

-The application must listen to BrowserInvokeEvent at the start and then you can use the arguments passed to the application like this:

public function onInvokeEvent(invocation:InvokeEvent):void 
{
    arguments = invocation.arguments;
    currentDir = invocation.currentDirectory;
}

-You can launch an AIR APP only from an SWF. A SWF file in the browser can launch an AIR application by calling the launchApplication() method in the air.swf file loaded from http://airdownload.adobe.com/air/browserapi/air.swf Once the air.swf file is loaded, the SWF file can call the air.swf file's launchApplication() method, as in the following code:

var appID:String = "com.example.air.myTestApplication";
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1";
var arguments:Array = ["launchFromBrowser"]; // Optional
airSWF.launchApplication(appID, pubID, arguments);

For more informations http://livedocs.adobe.com/flex/3/html/help.html?content=app_launch_1.html#1038008

Hope it helps.

查看更多
对你真心纯属浪费
3楼-- · 2019-02-10 09:30

for iphone you should use an Url-scheme http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html

for android you should edit the AndroidManifest.xml like this

   <activity android:name=".MyUriActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="myapp" android:host="path" />
    </intent-filter>
   </activity>

You can find more answers here How to implement my very own URI scheme on Android

查看更多
甜甜的少女心
4楼-- · 2019-02-10 09:46

Register BrowserInvokeEvent on completion, NativeApplication.nativeApplication.addEventListener(BrowserInvokeEvent.BROWSER_INVOKE,onBrowserInvoke);

then define,

protected function onBrowserInvoke(event:BrowserInvokeEvent):void { arguments = event.arguments; }

查看更多
登录 后发表回答