将参数从 Java 活动传递到 Adob​​e AIR 应用程序

Posted

技术标签:

【中文标题】将参数从 Java 活动传递到 Adob​​e AIR 应用程序【英文标题】:Passing parameters from a java activity to Adobe AIR app 【发布时间】:2011-08-01 06:09:06 【问题描述】:

我们如何在启动另一个 AIR 类型的应用程序时从 Java Activity 传递参数?

我们为 java 活动做的方式是使用 Intent 的 extra。 android上的java Activity和AIR应用程序的参数传递机制是什么?目前,我们通过共享一个公共位置(sqlite db)并每秒轮询一次来传递参数。这不是一个好的设计,我相信必须有一些好的方法来做到这一点。请赐教。

【问题讨论】:

【参考方案1】:

在 Adob​​e AIR 2.5 中,您可以使用自定义 URI 将参数传递给 AIR 应用程序。

通过使用此功能,可以从浏览器或原生 android 应用程序调用应用程序。当从 browser/android-app 调用应用程序时,InvokeEvent 被分派给应用程序。 要使应用程序可从浏览器调用,请将其添加到应用程序描述符中(作为应用程序元素的子元素):

<android>
    <manifestAdditions>
    <![CDATA[
        <manifest>
            <application>
                 <activity>
                     <intent-filter>
                         <action android:name="android.intent.action.MAIN"/>
                         <category android:name="android.intent.category.LAUNCHER"/>
                     </intent-filter>
                     <intent-filter>
                         <action android:name="android.intent.action.VIEW"/>
                         <category android:name="android.intent.category.BROWSABLE"/>
                         <category android:name="android.intent.category.DEFAULT"/>
                         <data android:scheme="testapp"/>
                     </intent-filter>
                 </activity>
             </application>
         </manifest>
     ]]>
     </manifestAdditions>
</android>

现在要从浏览器启动您的应用程序,请提供以下网址:testapp://。一个例子是:

<a href="testapp://">click here to launch air test app from browser</a>

单击此链接将启动您的应用程序。

如果您想从浏览器向您的应用程序传递其他参数,请使用以下内容:

<a href="testapp://arg1=value&secondArgument=someValue">click here to launch air test app from browser</a>

一旦您的应用程序启动,获取收到的InvokeEvent 的参数属性。这将包含完整的 URI (testapp://arg1=value&amp;secondArgument=someValue),您可以对其进行解析以提取参数。

来自here。

【讨论】:

【参考方案2】:

除了上述答案之外,要使用 Intent 从 android 应用程序启动 adobe air 应用程序,请执行以下操作:

Intent i = Intent.parseUri("testapp://arguments-to-pass",Intent.URI_INTENT_SCHEME);
i.addCategory(Intent.CATEGORY_BROWSABLE);
i.setComponent(null);
i.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
startActivity(i);

【讨论】:

【参考方案3】:

swf 文件是 mxml 的输出,是将值从 android 传递到 mxml 或 .swf 的上述方法。我们必须从 .swf 或 .mxml 方面进行哪些更改。我正在 FB(flash Builder) 4.5 上编译 mxml 并从 android eclipse 调用它。 Rgds, 苏拉布

【讨论】:

以上是关于将参数从 Java 活动传递到 Adob​​e AIR 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何将某些活动的上下文作为参数传递

如何使用安全参数将数据从导航抽屉传递到活动?

Android Java将变量从片段传递到活动[重复]

需要帮助以在将条形码扫描到 Adob​​e 表单时自动从条形码中删除数据标识符

从浏览器获取相同的会话到 Adob​​e

将 Adob​​e AIR 应用程序部署到 iOS 模拟器