0

私の Android アプリケーションは、クライアント コードと WebKit セッションを切り替える必要があります。特定の操作中に、WebKit を介してロードした別の Web サイトにユーザーをリダイレクトします。ユーザーが簡単に WebKit セッションを離れてアプリケーションに戻り、別の操作を実行したり、最後のセッションを変更したりできるようにしたいと考えています。ブラウザーの [戻る] ボタンに頼りたくないのは、ユーザーが Web サイトで重要なページ ナビゲーションを行ってアプリケーションへのセッションを取り戻さなければならない場合、ユーザーに負担がかかる可能性があるためです。

ユーザーがアプリケーションに戻りたいときにいつでもクリックできるボタンまたはリンクを配置したいと考えています。WebKit がそれを許可しないと確信しているため、WebKit セッションに要素を挿入できるかどうかを尋ねているわけではないことに注意してください。

何か案は?また、WebKit の起動間で状態情報を維持するためのヒントも歓迎します。Activity コンストラクターの Bundle パラメーターについては知っていますが、注意が必要な微妙なニュアンスがあれば教えてください。

-- ロシュラー

4

1 に答える 1

1

(「WebKit」と言うときは、組み込み可能な WebView クラスではなく、デフォルトのシステム ブラウザーを意味していると思います。)

これは、カスタム URL スキームを介して行うことができます。カスタム URl スキームの例は次のとおりです。

myapp://somedata:someotherdata

このスキームで呼び出されるアプリを登録できます。

<activity ....>
    <intent-filter>
        <data android:scheme="myapp"/>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
    </intent-filter>
</activity>

次に、ブラウザでmyapp://他のhttp://URL と同じように参照します (ボタン、リンク、JavaScript などを介して)。また、スキームの後にいくつかのデータを追加することもできます。たとえばmyapp://some:data、 を介してアプリで取得できますgetIntent().getData()

注: カスタム スキームはグローバルです。他のアプリと競合しないようにしてください。完全なパッケージ名を使用することをお勧めしますcom.mypackage.myapp://

于 2011-04-25T21:47:46.460 に答える