> >

ShareSDK Android for ANE

为了方便Flash Air的开发者集成ShareSDK,我们提供了ANE的桥接SDK。下文简要介绍桥接SDK的使用步骤:

1、 集成步骤

1.1、 下载ShareSDK的ANE组件

到Github上Clone我们ShareSDK for ANE的开源项目

1.2、 导入ANE组件

打开Flash Builder。右键点击要集成SDK的项目,选择“属性”。在弹出的窗口里面选择“ActionScript构建路径“ -> “本机扩展”。点击添加ANE,然后选择ANESample目录/package/ShareSDK_Android.ane。(注意:如果没有ane的文件,可以通过ane快速集成指南#.E8.87.AA.E5.AE.9A.E4.B9.89ShareSDK来利用脚本生成ane文件)如图:

700px-ane_doc_001

然后选择“ActionScript构建打包” -> “Apple iOS“。在弹出对话框中选择“本机扩展”。把添加的ANE打上勾(不发布iOS版本可以略过此步骤),如图:

700px-ane_doc_002

然后选择“Google Android”。在弹出对话框中选择“本机扩展”。把添加的ANE打上勾(不发布Android版本可以略过此步骤),如图:

ane1

复制ShareSDK.xml(Andorid版本需要配置)

复制“Android/ShareSDKForANE/assets/ShareSDK.xml”到您Flash Air项目的src目录。打开您项目的属性窗口,进入“Flex构建打包—Google Android”页面,选择右侧的“包内容”,勾选“ShareSDK.xml”;

此时,您的项目已经集成ShareSDK,下面介绍接口的调用。

2、代码配置

 

2.1、 初始化ShareSDK

 

在ShareSDK的任何操作前都需要初始化SDK。包括:

1、调用“shareSDK.initSDK(“6c7d91b85e4b”);”方法去启动初始化ShareSDK
2、调用“shareSDK.setPlatformConfig(totalConf);”方法去配置社交平台应用信息(Android平台使用ShareSDK.xml配置应用信息的,可略过此操作)
3、调用“shareSDK.setPlatformActionListener(onComplete, onError, onCancel);”方法设置操作回调。

下面是示例代码:(初始化其他的平台,里面的参数可以参照这里

// android平台使用sharesdk.xml文件配置的话,可无须设置appkey
private var shareSDK:ShareSDKExtension = new ShareSDKExtension();
shareSDK.initSDK("6c7d91b85e4b"); 

// android平台使用sharesdk.xml文件配置的话,无需此方法
var totalConf:Object = new Object();

var sinaConf:SinaWeibo = new SinaWeibo();				
sinaConf.setAppKey("568898243");
sinaConf.setAppSecret("38a4f8204cc784f81f9f0daaf31e02e3");
sinaConf.setRedirectUrl("http://www.sharesdk.cn");
sinaConf.setAuthType("both");
totalConf[PlatformID.SinaWeibo] = sinaConf.getPlatformConf();

shareSDK.setPlatformConfig(totalConf);

// 设置操作回调方法
shareSDK.setPlatformActionListener(onComplete, onError, onCancel);

回调方法onComplete,onError,onCancel是Function类型,其实先分别如下:

// 操作成功的回调
public function onComplete(reqId:int, platform:int, action:String, res:Object):void
		{
			var json:String = (res == null ? "" : JSON.stringify(res));
			var message:String = "onComplete\nPlatform=" + platform + ", action=" + action + "\nres=" + json + "\n reqId=" + reqId;
			//var message:String = "onComplete: Platform =" + platform + ", action = " + action + ", uid = " + res["uid"] + ", accessToken = " + res["access_token"];
			shareSDK.toast(message);
		}

		public function onCancel(reqId:int, platform:int, action:String):void 
		{
			var message:String = "onCancel\nPlatform=" + platform + ", action=" + action + "\n reqId=" + reqId;
			shareSDK.toast(message);
		}

		public function onError(reqId:int, platform:int, action:String, err:Object):void 
		{
			var json:String = (err == null ? "" : JSON.stringify(err));
			var message:String = "onError\nPlatform=" + platform + ", action=" + action + "\nres=" + json + "\n reqId=" + reqId;
			shareSDK.toast(message);
		}

2.2、授权

 

初始化SDK后,可调用类似下面的代码执行授权:

shareSDK.authorize(PlatformID.SinaWeibo);

授权结果会通过上述操作回调返回。

2.3、获取用户信息

可调用类似下面的代码获取用户信息:

shareSDK.getUserInfo(PlatformID.DouBan);

2.4、分享

可调用类似下面的代码完成直接分享:

var shareParams:ShareContent = new ShareContent();
shareParams.setText("这是分享的Text");
shareParams.setTitle("ShareSDK for ANE发布");
shareParams.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");	
			
shareSDK.shareContent(PlatformID.SinaWeibo, shareParams);

上诉接口分享时不会有ShareSDK的GUI,如果您希望使用ShareSDK的GUI,可以使用类似于下面的接口:

shareSDK.setPlatformActionListener(onComplete, onError, onCancel);
var shareParams:ShareContent = new ShareContent();	
shareParams.setText("ShareSDK 3.0 for ANE Text");
shareParams.setTitle("ShareSDK 3.0 for ANE Title");
shareParams.setUrl("http://mob.com");
shareParams.setImagePath("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
shareParams.setShareType(ShareType.SSDKContentTypeWebPage);		
//定制指定平台的分享内容
var twParams:ShareContent = new ShareContent();
twParams.setText("ANE TencentWeibo Text");
twParams.setTitle("ANE TencentWeibo Title");
twParams.setUrl("http://mob.com");
twParams.setImageUrl("http://www.zsnews.cn/data/photo/Backup/2008/04/21/tn_200842116444313993.jpg");
twParams.setShareType(ShareType.SSDKContentTypeImage)
shareParams.setShareContentCustomize(PlatformID.TencentWeibo, twParams);
				
var sinaParams:ShareContent = new ShareContent();
sinaParams.setText("SinaWeibo Text");
var file:File = File.applicationDirectory.resolvePath("mac.jpeg");
sinaParams.setImagePath(file.nativePath);
sinaParams.setShareType(ShareType.SSDKContentTypeImage)
shareParams.setShareContentCustomize(PlatformID.SinaWeibo, sinaParams);
					
shareSDK.showPlatformList(null, shareParams, 320, 460);

3、自定义ShareSDK

ShareSDK.ane集成了ShareSDK的所有代码,因此如果您打算去除不需要的平台和资源,您可以在其基础上完成自定义。(如果没有ane的文件,你也可以根据以下的ios部分利用脚本生成一个ane文件)具体操作如下:

3.1、Android部分

1、将“ShareSDKExtension”和“Android/ShareSDKForANE”导入到Flash Builder中

2、参考Android快速集成文档,根据您的项目需求修改ShareSDKForANE项目的代码

3、根据ShareSDKForANE项目的修改,适配ShareSDKExtension

4、复制ShareSDKForANE项目的libs目录下(除“FlashRuntimeExtensions.jar”外)的jar到一个临时目录下,它们解压

5、将ShareSDKForANE项目的src导出为“ShareSDKANE.jar”,用解压工具打开此jar,复制上述临时目录下的文件到它里面

6、复制ShareSDKANE.jar到“package/Android-ARM”中替换原来的jar

7、复制“ShareSDKExtension/bin”下的“ShareSDKExtension.swc”到“package”下,然后复制此文件多一个备份,重命名为“ShareSDKExtension.zip”,解压,并复制解压出来的文件到“package/Android-ARM”中替换同名文件

8、双击执行“package/ane_build_android_only.bat”,产生新的“ShareSDK_Android.ane”

完成上述步骤以后,参考本文开头的集成步骤,重新集成ShareSDK即可。