このサイト、Google、および別の Android フォーラムで答えを探しましたが、機能するものが見つかりません。
Android WebView アプリに BACK キーを含めようとしています。そうしないと、BACK キーはアクティビティを終了するだけです。
私はAndroidが初めてなので、プログラミングのすべてを知りません。誰かが私を正しい方向に向けることができますか?
ありがとう!
次のようにあなたの戻るボタンをインターセプトしActivity
ます...
public class MyWebActivity extends Activity {
WebView webview;
@Override
protected void onCreate(Bundle savedInstanceState) {
// Other code here
webview = new WebView(this);
}
// Other methods here
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
HelloWebViewチュートリアルのパート9で説明されています
アクティビティでonbackpressedをオーバーライドします。
@Override
public void onBackPressed() {
}
バックプレスでアクティビティを閉じたくない場合は、super.onBackPressed()を削除するだけで、アクティビティを終了できず、バックプレスでアクティビティを閉じなくても正しく機能します。
たとえば、Android 上の WebView で次の URL をキャッチしています。
メソッド shouldOverrideUrlLoading で:
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
webView.getUrl();
if( url.equals("http://any.com/url") ){
//Do any action
Toast tr =Toast.makeText(WebViewTest.this, "Test Passed", Toast.LENGTH_LONG);
tr.show();
//Go to other activity or you can put finish(); to stop the actual activity
//Do other action
Intent i1 = new Intent("com.mypack.courses.Passed");
startActivity(i1);;
return true;
}
if( url.equals("http://any.com/url") ){
Toast tr =Toast.makeText(WebViewTest.this, "Test Failed", Toast.LENGTH_LONG);
tr.show();
Intent i2 = new Intent("com.mypack.courses.Failed");
startActivity(i2);
return true;
}
return true;
}
この場合、ユーザーが Webview 上の「http://any.com/url」をクリックすると、任意のアクションが実行されます。条件またはメソッドを入力するだけで、そこで実行したい場所がどこでも得られることを願っています。アイデア...