flashdevelop工程调用android方法

前面flashdevelop的操作跟调用ios的工程一样的,详见  

flashdevelop调用ios方法

在flash工程里我主要用到android和ios的支付,参考了google  code上的代码下面是地址
android的支付有点问题没初始化BillingService对象,一下是我修改的地方
1.添加初始化接口
functionMap.put("getProducts", new GetProductsCall() );
functionMap.put("startPayment", new StartPaymentCall() );
functionMap.put("finish", new FinishCall() );
functionMap.put("muted", new MutedCall() );
functionMap.put("restore", new RestoreCall() );
functionMap.put("trans", new GetTransCall() );
functionMap.put("init", new InitFunction() ); InitFunction这份方法他里面已经实现好了
我在导入eclipse的时候回出现一下没用的引用可以删除,有个builder.sh我也把他上了,我打包ane的方法跟ios一样只是改变一下,具体怎么实现在后面

2.导入jar包
右键AppPurchase导入,在弹出的界面中选择java-》jar file 导出jar包

3.flashbuilder中打开 AS 工程
在你下载的svn目录底下有个 (我的目录结构是F:\android支付工程\svn\svn\branches\v1-And)下面有个as工程,打开工程在AppPurchase.as工程中加入flashdevelop调用的初始化方法
public function initMgr():void
{
ext.call("init");
}


4.右键as导出flash builder项目 生成.swc 文件
5.打包ane
as工程目录下有个extension.xml 可以考出来用,也可以照着ios的自己在搞一个,如果是照ios的方法改下里面的内容就成,我是照ios的下面xml内容
<extension xmlns="http://ns.adobe.com/air/extension/2.5">
  <id>com.adobe.appPurchase</id>
  <versionNumber>1</versionNumber>
  <platforms>
    <platform name="Android-ARM">
            <applicationDeployment>
                <nativeLibrary>AndroidPurchase.jar</nativeLibrary>
                <initializer>com.sbhave.appPurchase.glue.AppPurchaseExtension</initializer>
                <finalizer>com.sbhave.appPurchase.glue.AppPurchaseExtension</finalizer>
            </applicationDeployment>
    </platform>
  </platforms>
</extension>


 将.swc ,jar, xml 三个文件拷贝到同一个目录下备份一个.swc改后缀名为.zip解压出library.swf

"D:\flex sdk\4.6.0\bin\adt" -package -target ane aneDemo.ane extension.xml -swc AneFlex.swc -platform Android-ARM library.swf libAneDemo.jar
在cmd下运行生成.ane 文件,这样在flashdevelop里就能调用了

6.调用.ane并配置android属性
将.ane文件放入lib目录加为libary,在手持设备属性里找到mobileAdditions 在android的设置选项卡中输入下面红色的字段就能实现支付功能了
<manifest android:installLocation="auto">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch" />
</manifest>

注意:要生成.apk或者.ipa包的时候才能用.ane,不然在模拟器上嵌入ane会认不到ane里面配置的id,编译会报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值