Notification固有的扩展示例

需求:
具备知识: 熟悉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);
  • }
复制代码
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)中添加以下代码:
  • 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);            
  • }
复制代码
当用户选择notification后(Android),或者这个按钮被触发(iOS),您会收到一个Notification.NOTIFICATION_ACTION事件。这个ne.actionData将被设置为你在notification里设置的actionData的值。

    查看在asdocs/index.html文件里的示例,以了解更多有关notification和NotificationManager的信息。

应用程序描述符

    如果您要部署到Android,请确保在你的应用程序描述XML文件的manifestAdditions标签里,指定这个额外的权限。
  • <application>
  • <service android:name="com.adobe.ep.localnotifications.LocalNotificationIntentService"/>
  • </application>
复制代码
当用户点击Android Window shade(通知区域)时,这个给予允许打开你应用程序的权限。iOS不需要额外必须的权限。

了解更多
关于开发Adobe AIR原生扩展的更多信息,请参阅:

Adobe AIR扩展
开发Adobe AIR的原生扩展
Adobe原生扩展示例

关于在Adobe AIR应用程序中使用原生扩展的更多信息,请参阅:

使用Adobe AIR的原生扩展

    这项工作是根据Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License被授权的。保留此授权以外的权利,有关这项工作的示例代码在Adobe(可能是某种授权)下有.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值