自从iOS 6测试版本中第一次出现Social功能的时候,我就想写这篇教程,当时由于iOS还没有正式发布,所以迟迟没有动笔。后来知道Adobe官方要出这个ANE,所以干脆就拖到了现在。不过结果证明我等到现在是对的,因为按照我原来的计划,这篇教程从ActionScript到OBJC,连代码加例子肯定是一篇长教程,可是Adobe官方的ANE把所有功能封装的如此妥当以至于几乎没有什么需要我来特别说明的了,一篇短短的说明文足矣。下面我就简短讲解一下Adobe Gaming SDK中的Social API。
本文面向人群:
使用AIR做iOS移动开发的ActionScript开发者
阅读本文不需要具备的知识:
Objective-C
——————————————–
什么是Social功能?
——————————————–
iOS 6中的Social功能,指的是在iOS SDK中集成了对FaceBook,Twitter以及新浪微博的支持。开发者不需要直接面对这三个社交平台的登陆验证和消息发布系统,完全由设备操作系统来控制。
但是这套Social包的功能只允许消息的单向发布,其它的操作比如好友管理、个人资料维护等等你都不能通过这套API来操作,那些高级功能需要你使用各个社交平台提供的证书授权机制来和它们的后台对接,类似于新浪官方微博客户端、Weico微博客户端,需要在开放平台上注册应用、获取应用授权等等,不是我们今天所讨论的范畴。
我们今天只讨论如何通过Gaming SDK中的Social API,利用iOS 6的系统支持,向FaceBook,Twitter和新浪微博这三个社交平台单向发布公开消息。
——————————————–
如何获得Adobe Gaming SDK?
——————————————–
登陆Adobe Creative Cloud,在这个页面里下载Adobe Gaming SDK 1.0。 安装后,打开本地安装路径下一个叫Native Extensions (ANEs)的文件夹,将Social.ane拷贝到你的项目路径下,就可以通过Flash Builder 4.7来引用它了。(如果你的FB版本较低,可以把这个ane拷贝一份更名为.swc后再引用到FB中,不过那样你需要使用ADT来完成最后的打包)
——————————————–
如何使用Social API?
——————————————–
打开Native Extensions (ANEs)文件夹中的Docs文件夹,里面有所有类的文档。找到一个叫做SocialUI的类,看Example就可以知道这个类如何使用。或者看SocialUI类的标准帮助说明,得知它的几个方法:
addImage
addURL
setMessage
launch
clear
另外再了解一个类SocialServiceType,有三个静态常量FACEBOOK,SINAWEIBO,TWITTER。
具体使用方法用文字描述一下即可:以新浪微博为例,先new一个SocialUI实例,构造函数参数为SocialServiceType.SINAWEIBO,然后使用这个实例的addImage方法为你打算发布的内容添加一个BitmapData,使用addURL添加一个链接,使用setMessage添加准备发布的文字信息。这时如果决定发布,调用launch,会弹出一个iOS系统级别的界面,里面有你上传的所有信息,之后在那个界面上就操作了。如果想要取消发布,调用clear释放内存;
亲自试一下吧,非常的简单!
补充三点:
1, Social.ane的扩展ID是Adobe.Social,这个需要用在xml描述文件中
2, Social功能对iOS SDK的最低版本要求是6,所以对Flash Builder 4.7,可以直接在面板中指定iOS SDK的路径,对于使用ADT编译的开发者,需要在打包ipa的命令行最后加上-platformsdk并指定iOS SDK的路径。
3, 根据开发者反映,目前的SocialUI对iOS 6.0.1有bug, 表现为SocialUI.isSocialSupported总是false。对此,我把原来我自己写的ANE整理出来一个,暂时开放给有需要的开发者使用。经我测试没有问题。ID为com.jamesli.ane.Social,其中的API与本文介绍的官方API用法一样。
下载地址:http://jamesli.cn/uploads/Social.ane.zip