如何从flex mobile中的其他应用程序调用应用程序

时间:2012-05-07 19:29:35

标签: android ios flex invoke playbook

有没有办法从Air中的另一个应用程序打开一个应用程序?示例:我打开应用程序A,其中包含一个按钮,可在单击时打开应用程序B.假设A和B都是安装在设备中的独立应用程序,并且该设备可以是PlayBook,Ipad或Android平板电脑。

感谢。

2 个答案:

答案 0 :(得分:1)

您必须使用Air Native Extension(ANE)路线。为iOS和Android创建一个ANE解决方案,或者将一个功能集合到一个解决方案中的ANE。如何在Android上从应用B启动应用A与在iOS上不同。请参阅SO中的this答案。

要在Android上实现它,您需要将本机Android Java解决方案包装在ANE中。本机Java代码使用应用程序B的程序包名称从应用程序A:

启动应用程序B.
Intent intent = getPackageManager().getLaunchIntentForPackage("com.yourdoman.yourapp");
startActivity(intent);

以下是关于如何通过ANE启动活动的video tutorial,您可以在此基础上创建ANE。您必须定制解决方案以按域而不是活动启动。

答案 1 :(得分:0)

由于我真的不知道你要做什么的具体细节,我想我应该在这里指出:http://www.riaspace.com/2011/08/defining-custom-url-schemes-for-your-air-mobile-applications/这是我所知道的问题的最佳答案。

        private function getHostName() : void
        {
            if (NativeProcess.isSupported)
            {
                var OS : String = Capabilities.os.toLocaleLowerCase();
                var file : File;

                if (OS.indexOf('win') > -1)
                {
                    // Executable in windows
                    file = new File('C:\\Windows\\System32\\hostname.exe');
                }
                else if (OS.indexOf('mac') > -1 )
                {
                    // Executable in mac
                }
                else if (OS.indexOf('linux'))
                {
                    // Executable in linux
                }

                var nativeProcessStartupInfo : NativeProcessStartupInfo = new NativeProcessStartupInfo();
                nativeProcessStartupInfo.executable = file;

                var process : NativeProcess = new NativeProcess();
                process.addEventListener(NativeProcessExitEvent.EXIT, onExitError);
                process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutput);
                process.start(nativeProcessStartupInfo);
                process.closeInput();
            }
        }

        private function onOutput(event : ProgressEvent) : void
        {
            var strHelper : StringHelper = new StringHelper();
            formStationID.text = event.target.standardOutput.readUTFBytes(event.target.standardOutput.bytesAvailable);
            formStationID.text = strHelper.trimBack(formStationID.text, "\n");
            formStationID.text = strHelper.trimBack(formStationID.text, "\r");
        }

此代码获取工作站名称。我听说过这可以在IOS和Android上完成,但我还没有找到任何证据。