1

Android アプリにカスタム URL スキームを実装しようとしています。完全なアクティビティ フローは次のとおりです。

ステップ 1: ユーザーがデバイスにアプリをダウンロードする

ステップ 2: ユーザーがデバイスにアプリをインストールする

ステップ 3: ユーザーがサインアップ ページからアプリにサインアップします。

ステップ 4: サインアップ/登録が完了すると、Web サーバーからユーザーにアカウントを有効にするための電子メールが送信されます。

ステップ 5: ユーザーは、Web ブラウザーからアクティベーション メールを開くか、Android フォンからメール アプリを開く必要があります。

ステップ 6: ユーザーが電子メールのアクティベーション リンクをクリックすると、システムは次のステップを実行する必要があります。

6.ユーザーは URL を介してアクティブ化されます

6.b システムは、要求がコンピューターまたはモバイル デバイスからのものかどうかを確認します (ブラウザーの Java スクリプト コードがこのチェックを実行します)。

6.c ユーザーがモバイル デバイスを使用していて、デバイスの OS が Android の場合、アクティベーション プロセスでは、アクティベーション後にインストール済みのアプリを開く必要があります。

問題

上記のソリューションは、Android OS バージョン 2.x では機能しますが、OS バージョン 4.x では機能しません。この問題は、ユーザーが Android 4.0 デバイスの電子メール アプリでアクティベーション リンクをクリックすると発生します。アクティブ化すると、ユーザーはページにリダイレクトされ、モバイル ブラウザは「Web ページが見つかりません」というエラー メッセージを返します。</p>

実装:

ログイン画面のアクティビティ定義のために、アプリのマニフェストでカスタム URL スキームを定義しました。url appnameURLScheme://appname がブラウザーから呼び出されると、アプリのログイン画面が起動し、ブラウザーをバックグラウンドにしてアプリを前面に表示します。

マニフェストは次のとおりです。

<activity
   android:name=".AppNameScreen"
   android:screenOrientation="portrait"
   android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
   <action android:name="android.intent.action.MAIN" />
   <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
   android:name=".LoginScreen"
   android:screenOrientation="portrait"
   android:theme="@android:style/Theme.NoTitleBar" >
   <intent-filter>
      <data
      android:host="AppName"
      android:scheme="AppNameURLScheme" />
      <action android:name="android.intent.action.VIEW" />
         <category
            android:name="android.intent.category.DEFAULT"/>
         <category
            android:name="android.intent.category.BROWSABLE"/>
   </intent-filter>
</activity>
4

0 に答える 0