Flex

Air Native Extension - iOS Native Alert -2-

Air Native Extension - iOS Native Alert

うぃ。
NativeのAlertを呼んでみます。これだけでもネイティブっぽくなりますね。
ARCで出来るので、捗りますねー。

続きです。

ANEを作りますー。

Flexライブラリプロジェクトを選択して、SWCを作成後、adtコマンドでANEを作りましょー。

以下ソース。

[ nativeAlertANE.as ]
----------
package com.chocbanana.iphone{
    
    import flash.events.Event;
    import flash.events.EventDispatcher;
    import flash.events.IEventDispatcher;
    import flash.events.StatusEvent;
    import flash.external.ExtensionContext;
    
    public class nativeAlertANE extends EventDispatcher{
        
        private var _ExtensionContext:ExtensionContext;
        
        public function nativeAlertANE(target:IEventDispatcher=null){
            //TODO: implement function
            super(target);
            _ExtensionContext = ExtensionContext.createExtensionContext("com.chocbanana.iphone.nativeAlertANE", null);
        }
        
        public function dispose():void{
            _ExtensionContext.dispose();
        }
        
        public function showNativeAlert(title:String, message:String, cancelButtonTitle:String, otherButtonTitle:String):void {
            try{
                _ExtensionContext.call("showNativeAlert", title, message, cancelButtonTitle, otherButtonTitle);
            }catch(ex:Error){
                trace(ex.message);
            }
        }
    }
}
----------


[ descriptor.xml ]
----------
<extension xmlns="http://ns.adobe.com/air/extension/3.1">
    <id>com.chocbanana.iphone.nativeAlertANE</id>
    <versionNumber>1.0</versionNumber>
    <platforms>
        <platform name="iPhone-ARM">
            <applicationDeployment>
                <nativeLibrary>libNativeAlert.a</nativeLibrary>
                <initializer>initializer</initializer>
                <finalizer>finalizer</finalizer>
            </applicationDeployment>
        </platform>
    </platforms>
</extension>
----------

これだけ書いて、コンパイルしてSWCを作成しましょう。
SWCをZIPに変えて(コピーしてね)、library.swfを取り出し、descriptor.xmlをbinフォルダに放り込んで、platform.xmlを書きます。



ANE作成時の platform.xml と adtコマンドのオプションはこちら。

今回は、コンパイラーに怒られたので、以下の内容になりますた。

[ platform.xml ]
-------
<platform xmlns="http://ns.adobe.com/air/extension/3.1">
    <sdkVersion>6.0</sdkVersion>
    <linkerOptions>
        <option>-w</option>
        <option>-ios_version_min 5.0</option>
        <option>-L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc</option>
        <option>-larclite_iphoneos</option>
    </linkerOptions>
</platform>
-------

で、adtコマンド。の、オプション部分。

-package -target ane nativeAlertANE.ane descriptor.xml -swc nativeAlertANE.swc -platform iPhone-ARM -C . library.swf -platformoptions platform.xml libNativeAlert.a


で、ANE完成。姉ですよ姉!

続いてはANEを組み込んで完成でーす。

このページの先頭へ