0

私はこのようなWebviewAndroidアクティビティ(Activity Bなど)で使用しています

webview = new WebView(this);
webview.setWebViewClient(new WebViewClient());
setContentView(webview);
webview.loadUrl("http://mywebpage");

そのため、webview はアクティビティで Web ページを開き、期待される機能は、ユーザーが webview のリンクをたどってさまざまな Web ページを閲覧できることです。(ウェブサイトはモバイル アプリケーションのものです。つまり、私の管理下にあります)。

さて、ユーザーが Web ページをチェックアウトした後、ユーザーを別のアクティビティに誘導するにはどうすればよいでしょうか? (それがアクティビティに役立つ場合-アクティビティA-は、webviewを含むアクティビティBが呼び出された場所と同じになります)。

それで、ユーザーがアクティビティ A に戻るように、webview から現在のアクティビティ (B) を終了することを決定できますか? または、可能であれば、Web ページ上のイベントに基づいて、アクティビティ A または他のアクティビティ C である別のアクティビティを直接開始しますか?

または、フローを処理できるアクティビティ B の Webview の外にボタンを提供する必要がありますか?

または、より良いアプローチがありますか?

4

2 に答える 2

1

説明しているものを処理する方法はいくつかあります。まず、ユーザーが戻るボタンを押した場合、アクティビティは問題なく終了し、finish を呼び出す必要なくアクティビティ A に戻る必要があります。

現在、ユーザーが表示している Web ページを作成している/管理している場合は、Web ビューから別のアクティビティを開始するためのインテント フィルターを作成できます。例えば:

<intent-filter>
    <category android:name="android.intent.category.DEFAULT"/>
    <category android:name="android.intent.category.BROWSABLE"/>
    <data android:scheme="http" 
          android:host="www.yourwebsite.com" 
          android:path="your/path/here"/>
    <action android:name="android.intent.action.ACTION_VIEW"/>
</intent-filter>

そのインテント フィルターをマニフェスト内のアクティビティに適用し、Web サイトに URL http://www.yourwebsite.com/your/path/hereへのリンクを配置すると、そのインテント フィルターをサポートするアクティビティが起動されます。

于 2012-05-16T19:33:22.150 に答える
1

私が過去に行ったことは、webview アクティビティ (あなたの場合は Activity B) の webview の下に閉じるボタンを提供することです。startActivityForResult を使用してアクティビティ A からアクティビティ B を呼び出した場合、アクティビティ B が閉じると、コントロールはアクティビティ A に戻ります (具体的には、アクティビティ B が閉じると、アクティビティ A で onActivityResult が呼び出されます)。

上記に関連して、ページ A から開始してページ X に移動する定義済みのブラウジング プロセスがある場合に試すことができるもう 1 つの方法は、ページ X に到達したときにアクティビティ B を自動的に閉じることができることです。を拡張WebViewClientし、イベントをリッスンしてonPageFinished現在のページ URL を取得し、現在の URL が終了 URL と一致する場合はアクティビティを閉じます。

于 2012-05-16T19:24:12.140 に答える