22

ユーザーがカスタムプロトコルにリダイレクトされたときに起動されるAndroidアプリがあります。アプリがデバイスにインストールされていない場合は、ユーザーがアプリのgoogle/playストアにリダイレクトするようにします。

iOSの場合、次のようなものを使用します。YouTubeやマップなどのiPhoneアプリにhttp +ドメインベースのURLスキームを登録することは可能ですか?...ただし、これはAndroidでは機能しません。

これが基本的なワークフローです。

  1. ユーザーが当サイトのリンクをクリックする
  2. ユーザーはにリダイレクトされますcustomProtocol://site.com?some=params
  3. アプリがインストールされている場合、デバイスはcustomProtocol:// urlにアクセスしてアプリを起動したときに何をすべきかを認識しています...ただし、アプリがインストールされていない場合、Androidはページが利用できないというエラーページを表示します。上記のiOSのソリューションは機能していないようです。

Androidでこれを実現する方法について何か考えはありますか?それはアンドロイドでは不可能ですか?

4

2 に答える 2

23

Androidでこれを実現する方法について何か考えはありますか?

「カスタムプロトコル」(より正確には「カスタムスキーム」)ではありません。Androidのパターンは、自分が制御するURLを使用するためのものです。

たとえば、バーコードスキャナーアプリでは、メインのスキャンアクティビティに対して次のように定義されています

  <!-- Allow web apps to launch Barcode Scanner by linking to http://zxing.appspot.com/scan. -->
  <intent-filter>
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" android:host="zxing.appspot.com" android:path="/scan"/>
  </intent-filter>

次に、 http: //zxing.appspot.com/scanへのリンクは、次の2つのいずれかを実行します。

  1. Androidデバイスのブラウザからリンクをクリックし、バーコードスキャナーがインストールされている場合、ユーザーはアプリを表示するか、リンクに関連付けられたWebページを表示するかを選択できます。

  2. リンクが他の場所(アプリのないAndroidデバイス、他のモバイルデバイス、デスクトップ、ノートブックなど)をクリックすると、ブラウザーはそのURLのWebページを表示します。このページで、オプションでリダイレクトするなど、必要な操作を実行できます。 Playストア

于 2012-11-22T19:10:05.417 に答える
3

Google Playのアプリケーションページにリダイレクトするだけのサーバー側URLを定義し、そのURLをインテントフィルターで使用して、アプリケーションでキャプチャすることができます。

  • アプリケーションがインストールされている場合は、intent-filterを定義するアクティビティが開きます。
  • アプリケーションがインストールされていない場合、intent-filterは見つかりません。ブラウザーが開き、ユーザーはGoogle Playにリダイレクトされます(Playストアを開くか、ブラウザーで続行するかを確認するメッセージが表示されます)。
于 2012-11-22T19:13:58.120 に答える