0

Air で別のアプリから 1 つのアプリを開く方法はありますか? 例: クリックするとアプリ B を開くボタンを含むアプリ A を開きます。A と B の両方がデバイスにインストールされた別個のアプリであり、このデバイスが PlayBook、Ipad、または Android タブレットである可能性があるとします。

ありがとう。

4

2 に答える 2

1

Air Native Extension (ANE) ルートに移動する必要があります。iOS と Android のそれぞれに 1 つの ANE ソリューションを作成するか、機能を 1 つのソリューションに抽出する 1 つの ANE を作成します。Android でアプリ B からアプリ A を起動する方法は、iOS とは異なります。SOでこの回答を参照してください。

これを Android に実装するには、ネイティブの Android Java ソリューションを ANE にラップします。ネイティブ Java コードは、アプリ B のパッケージ名を使用して、アプリ A からアプリ B を起動します。

Intent intent = getPackageManager().getLaunchIntentForPackage("com.yourdoman.yourapp");
startActivity(intent);

これは、ANE を作成するために構築できる ANE を介してアクティビティを起動する方法に関するビデオ チュートリアルです。アクティビティではなくドメインで起動するようにソリューションを調整する必要があります。

于 2012-05-08T05:58:57.890 に答える
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 で実行できると聞いたことがありますが、その証拠はまだ見つかっていません。

于 2012-05-07T20:20:25.760 に答える