2011-01-14 13 views
1

webviewを起動した後にコントロールをコントロールに戻す方法を知っている人がいるのだろうか?私はアンドロイドデベロッパーのページからwebviewのサンプルコードを入手しましたが、私はwebviewから抜け出した後にコントロールをアプリケーションに返す方法を見つけることができませんでした。どんな助けもありがとう。WebViewがコントロールをアプリケーションに返さない

public class LaunchWeb extends Activity{ 
WebView webView; 
    public void onCreate(Bundle savedInstanceType) 
    { 
    super.onCreate(savedInstanceType); 
    setContentView(R.layout.webview_layout); 
    webView = (WebView) findViewById(R.id.webview); 
    //webView.setWebViewClient(new WebViewClient());  
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl(getIntent().getExtras().getString("url")); 
    } 
} 
+0

「アプリへのコントロールを戻す」とはどういう意味ですか?ユーザーがwebviewでヒットした場合は、アプリに戻る必要があります。もう何をお探しですか? –

+0

はい、ユーザーがエミュレータの戻るボタンを押すと、私のアプリに戻ってくるはずです。今私は戻っても何もしません。また、私は、ここに例のような基本的なwebviewがあることを明確にすべきです:http://developer.android.com/guide/tutorials/views/hello-webview.html – Kyle

+0

大丈夫私はもう一度試してみました。エレガントではありません。エミュレーターのボタンを押すと、Webviewが白く見えるようになります。もう一度ヒットすると(2回目)、私はすべて黒くなり、再びヒットすると(3回目)アプリ。今私は上記の動作へのワンクリックのアプローチがある場合、私の質問が変わったと思います。 – Kyle

答えて

1

コメントによると、閲覧履歴があるようです。

webviewでアクティビティを作成した場合は、historyStackをクリアして、戻るときに戻るようにしてください。

WebViewClientでも設定できます。各ページの読み込みで履歴を消去します。

WebView webview = new WebView(mContext); 
    webview.setWebViewClient(new AuthClient()); 

    private class AuthClient extends WebViewClient { 
      @Override 
      public void onPageFinished(WebView v, String url) { 
       v.clearHistory(); 
      } 
    } 
2

あなたの問題は、おそらくWebViewを見ていないことです。

アプリを実行します。 WebViewに表示されていると思われるページに移動したら、[MENU]ボタンをクリックします。おそらくブラウザアプリケーションのオプションメニューが表示されます。これは、アプリケーションではなくブラウザアプリケーションにあるためです。

WebViewは、デフォルトでリンクのすべてのクリックを開始し、すべてのユーザーはブラウザの選択肢にをリダイレクトします。あなたはリダイレクトシナリオに巻き込まれている可能性があります。loadUrl()に指定したURLはサーバー上でリダイレクトを引き起こし、リダイレクトされたURLはWebViewではなくブラウザによってロードされています。

あなたはWebViewWebViewClientオブジェクトを添付し、そしてリンクする/リダイレクトがWebViewにロードされなければならないとされ、ブラウザのユーザーの選択にロードする必要があることを示すために、WebViewClientshouldOverrideUrlLoading()を実装する必要があります。

関連する問題