有没有办法从Air中的另一个应用程序打开一个应用程序?示例:我打开应用程序A,其中包含一个按钮,可在单击时打开应用程序B.假设A和B都是安装在设备中的独立应用程序,并且该设备可以是PlayBook,Ipad或Android平板电脑。
感谢。
答案 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上完成,但我还没有找到任何证据。