需求:
具备知识: 熟悉Flash Builder4.6, ActionScript3和AIR/Flex
所需产品: Adobe AIR 3
示例文件:notification.zip
用户等级:中级
注:在点击本页面上任何示例资源下载链接的时候,请您确认已经阅读并接受了Adobe AIR SDK 许可协议。这些文件指的是示例代码。
注:Adobe推荐用Flash Builder的下一个版本为Adobe AIR开发原生扩展。现在注册获得Flash Builder4.6的预发行版。
Adobe AIR已经允许应用程序开发者用原生扩展(native extensions)的工具集,来扩展runtime的功能。通过使用原生扩展,您的应用程序可以访问您目标平台的所有功能,甚至在runtime本身没有内置支持的时候。这个例子扩充AIR,允许在那些部署在Android和iOS上的程序中创建notification。那些notification与其他系统的notification出现方式一样。当notification派发时,可以定制notification的类型、文本、动作。
所附的ZIP文件包括:
•Notification.ane:必须包含在您Flash Builder项目中的notification原生扩展。
•NotificationSample.fxp:一个简单的Flash Builder4.6项目,向您展示怎样在Android和iOS上派发notification。
•asdocs文件夹:这里包含了使用原生扩展的文档。
ActionScript库
在AS3中创建Notification对象,并被NotificationManager类派发。
您可以用以下代码开始派发notification:
复制代码
notifyUser()函数用原生扩展派发了notification。在Android上,notification出现在notification drawer(简单的从上向下滑动drawer)。iOS处理notification的方式略有不同:当notification被派发时,如果应用程序正在运行中,你将不会接收到一个弹出框;如果应用程序正在在后台运行(通过使用后台API进行多任务处理),那么当notification被派发时你会接收一个弹出窗口。
Notification对象以及它们的性能是可配置的:
•actionData:当notification被user actionLabel处理时,用于指定所采取的自定义操作
•actionLabel
•actionPolicy:NotificationAlertPolicy值指定是在每次出现此notification时提醒用户,还是仅第一次。
•body
•cancelOnSelect
•iconType:从NotificationAlertPolicy中可取的图标里,选择与系统notification默认图标一样的图标
•tickerText:当notification首次出现时,文本会在Android Window Shade顶部出现。
•title
•vibrate
为NotificationManager增加一个事件监听,以接收当一个notification已由用户处理时派发的事件。推荐您在初始化NotificationManager实例期间这样做。例如,在一个s:View对象的creationComplete事件处理方法(handler)中添加以下代码:
复制代码
当用户选择notification后(Android),或者这个按钮被触发(iOS),您会收到一个Notification.NOTIFICATION_ACTION事件。这个ne.actionData将被设置为你在notification里设置的actionData的值。
查看在asdocs/index.html文件里的示例,以了解更多有关notification和NotificationManager的信息。
应用程序描述符
如果您要部署到Android,请确保在你的应用程序描述XML文件的manifestAdditions标签里,指定这个额外的权限。
复制代码
当用户点击Android Window shade(通知区域)时,这个给予允许打开你应用程序的权限。iOS不需要额外必须的权限。
了解更多
关于开发Adobe AIR原生扩展的更多信息,请参阅:
•Adobe AIR扩展
•开发Adobe AIR的原生扩展
•Adobe原生扩展示例
关于在Adobe AIR应用程序中使用原生扩展的更多信息,请参阅:
•使用Adobe AIR的原生扩展
![](http://bbs.9ria.com/attachments/month_1110/111013125290c32879812774f0.jpg)
![](http://bbs.9ria.com/attachments/month_1110/11101312529f945330e452c0dd.jpg)
这项工作是根据Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License被授权的。保留此授权以外的权利,有关这项工作的示例代码在Adobe(可能是某种授权)下有.
具备知识: 熟悉Flash Builder4.6, ActionScript3和AIR/Flex
所需产品: Adobe AIR 3
示例文件:notification.zip
用户等级:中级
注:在点击本页面上任何示例资源下载链接的时候,请您确认已经阅读并接受了Adobe AIR SDK 许可协议。这些文件指的是示例代码。
注:Adobe推荐用Flash Builder的下一个版本为Adobe AIR开发原生扩展。现在注册获得Flash Builder4.6的预发行版。
Adobe AIR已经允许应用程序开发者用原生扩展(native extensions)的工具集,来扩展runtime的功能。通过使用原生扩展,您的应用程序可以访问您目标平台的所有功能,甚至在runtime本身没有内置支持的时候。这个例子扩充AIR,允许在那些部署在Android和iOS上的程序中创建notification。那些notification与其他系统的notification出现方式一样。当notification派发时,可以定制notification的类型、文本、动作。
所附的ZIP文件包括:
•Notification.ane:必须包含在您Flash Builder项目中的notification原生扩展。
•NotificationSample.fxp:一个简单的Flash Builder4.6项目,向您展示怎样在Android和iOS上派发notification。
•asdocs文件夹:这里包含了使用原生扩展的文档。
ActionScript库
在AS3中创建Notification对象,并被NotificationManager类派发。
您可以用以下代码开始派发notification:
- privatevarnotificationManager:NotificationManager
-
- protected function notifyUser():void
- {
- if ( !this.notificationManager )
- {
- try {
- this.notificationManager = new NotificationManager();
- }
- catch (ae:ArgumentError)
- {
- trace("The notification native extension has no support for this platform.");
- return;
- }
- }
-
- var n:Notification = new Notification();
-
- n.tickerText = this.tickerText.text;
- n.title = this.notificationTitle.text;
- n.body = this.notificationBody.text;
-
- this.notificationManager.notifyUser("MY_NOTIFICATION_TYPE",n);
- }
Notification对象以及它们的性能是可配置的:
•actionData:当notification被user actionLabel处理时,用于指定所采取的自定义操作
•actionLabel
•actionPolicy:NotificationAlertPolicy值指定是在每次出现此notification时提醒用户,还是仅第一次。
•body
•cancelOnSelect
•iconType:从NotificationAlertPolicy中可取的图标里,选择与系统notification默认图标一样的图标
•tickerText:当notification首次出现时,文本会在Android Window Shade顶部出现。
•title
•vibrate
为NotificationManager增加一个事件监听,以接收当一个notification已由用户处理时派发的事件。推荐您在初始化NotificationManager实例期间这样做。例如,在一个s:View对象的creationComplete事件处理方法(handler)中添加以下代码:
- protected function view1_creationCompleteHandler(event:FlexEvent):void
- {
- try
- {
- this.notificationManager = new NotificationManager();
- }
- catch (ae:ArgumentError)
- {
- trace("The notification native extension has no support for this platform.");
- return;
- }
-
- this.notificationManager.addEventListener(NotificationEvent.NOTIFICATION_ACTION,onNotificationActionEvent);
- }
-
- private function onNotificationActionEvent(ne:NotificationEvent):void
- {
- trace("Notification action received. Type: " + ne.actionData);
- }
查看在asdocs/index.html文件里的示例,以了解更多有关notification和NotificationManager的信息。
应用程序描述符
如果您要部署到Android,请确保在你的应用程序描述XML文件的manifestAdditions标签里,指定这个额外的权限。
- <application>
- <service android:name="com.adobe.ep.localnotifications.LocalNotificationIntentService"/>
- </application>
了解更多
关于开发Adobe AIR原生扩展的更多信息,请参阅:
•Adobe AIR扩展
•开发Adobe AIR的原生扩展
•Adobe原生扩展示例
关于在Adobe AIR应用程序中使用原生扩展的更多信息,请参阅:
•使用Adobe AIR的原生扩展
![](http://bbs.9ria.com/attachments/month_1110/111013125290c32879812774f0.jpg)
![](http://bbs.9ria.com/attachments/month_1110/11101312529f945330e452c0dd.jpg)
这项工作是根据Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License被授权的。保留此授权以外的权利,有关这项工作的示例代码在Adobe(可能是某种授权)下有.