Android 将附加内容从电子邮件传递到Flex应用程序
我有一个带有电子邮箱的flex移动应用程序。此ANE有一个广播接收器,在接收到事件时启动flex mobile应用程序:Android 将附加内容从电子邮件传递到Flex应用程序,android,actionscript-3,apache-flex,air,flex-mobile,Android,Actionscript 3,Apache Flex,Air,Flex Mobile,我有一个带有电子邮箱的flex移动应用程序。此ANE有一个广播接收器,在接收到事件时启动flex mobile应用程序: public class BroadcastEventHandler extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.d(Constants.TAG, "BROADCAST EVENT RECEIVED!");
public class BroadcastEventHandler extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Log.d(Constants.TAG, "BROADCAST EVENT RECEIVED!");
try {
Intent i = new Intent(context,
Class.forName(context.getPackageName()+".AppEntry"));
i.addCategory( Intent.CATEGORY_LAUNCHER );
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("nameKey", "value");
context.startActivity(i);
} catch (ClassNotFoundException e) {
e.printStackTrace();
Log.d(Constants.TAG, "Error on starting Intent: "+e.getMessage());
}
}
在flex应用程序上,我有以下代码:
protected function view1_preinitializeHandler(event:FlexEvent):void
{
NativeApplication.nativeApplication.addEventListener(
InvokeEvent.INVOKE, onInvoke);
}
private function onInvoke(event:InvokeEvent):void
{
trace("Arguments: " + event.arguments);
}
我想做的是在执行时将额外的内容从broadcastreceiver传递到flex应用程序(如您所见,我在ANE代码中添加了一个Bundle对象,但在flex应用程序中没有收到任何内容):
跟踪:
Arguments:
您知道如何使用一些参数/附加值启动活动(在android本机中)并在flex应用程序中获取它们吗?最后,我无法通过本机代码中的Bundle对象实现这一点。向应用程序传递参数时必须使用清单中的
标记。
但是,
一个警告是,从AIR应用程序调用具有自定义URL方案的其他应用程序是不可能的。空中安全模式的限制性更大,它将方案限制为:http:、https:、sms:、电话:、邮件:、文件:、应用程序:、应用程序存储:、VipacAccess:和connectpro:。你可以在这里和这里找到更多关于它的信息
从这个伟大的教程:
到目前为止,我所做的是用成员数据实现一个类。在那里,我存储了我以后要处理的数据(与我希望直接通过Bundle传递的数据相同)
当我在broadcastreceiver中收到通知时,我设置notificationCode的新值,然后启动活动(与前面相同,但添加了对setNotificationCode函数的调用)
然后,在actionscript端,在方法onInvoke上,我执行以下调用:
//call native functions:
//broadcastevent is the EventDispatcher that connects to the ANE
notificationCode=broadcastevent.getCode();
switch(notificationCode)
{
case Constants.DEFAULT_NOTIFICATION_CODE:
{
notificationMessage="THERE ARE NO NOTIFICATIONS";
break;
}
case Constants.UPDATE_APP_CODE:
{
notificationMessage="UPDATE APP NOTIFICATION";
break;
}
case Constants.SHOW_ALERT_CODE:
{
notificationMessage="SHOW ALERT NOTIFICATION";
break;
}
default:
break;
这不是我一直在寻找的,但我还没有找到其他方法来做类似的事情,而且很有效
//call native functions:
//broadcastevent is the EventDispatcher that connects to the ANE
notificationCode=broadcastevent.getCode();
switch(notificationCode)
{
case Constants.DEFAULT_NOTIFICATION_CODE:
{
notificationMessage="THERE ARE NO NOTIFICATIONS";
break;
}
case Constants.UPDATE_APP_CODE:
{
notificationMessage="UPDATE APP NOTIFICATION";
break;
}
case Constants.SHOW_ALERT_CODE:
{
notificationMessage="SHOW ALERT NOTIFICATION";
break;
}
default:
break;