Javascript Webview后退按钮
想知道如何让webview返回 尝试将webview重新发布,但我的代码似乎不起作用。不知道是不是我发起的,对此仍然感到困惑 也可以在webview中删除滚动条吗?我找到了一些关于它的帖子,但对于如何准确地将其放入我的代码中,我仍然持怀疑态度Javascript Webview后退按钮,javascript,android,webview,Javascript,Android,Webview,想知道如何让webview返回 尝试将webview重新发布,但我的代码似乎不起作用。不知道是不是我发起的,对此仍然感到困惑 也可以在webview中删除滚动条吗?我找到了一些关于它的帖子,但对于如何准确地将其放入我的代码中,我仍然持怀疑态度 package com.webapp.area956; import android.os.Bundle; import android.app.Activity; import android.view.KeyEvent; import
package com.webapp.area956;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebViewClient yourWebClient = new WebViewClient()
{
// Override page so it's load on my view only
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
// This line we let me load only pages inside Firstdroid Webpage
if ( url.contains("area956") == true )
// Load new URL Don't override URL Link
return false;
// Return true to override url loading (In this case do nothing).
return true;
}
};
String url = "http://www.area956.com";
WebView view = (WebView) this.findViewById(R.id.webView1);
view.setWebViewClient(yourWebClient);
view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
view.loadUrl(url);
}
public void onBackPressed (){
if (WebView.canGoBack()) {
WebView.goBack();
}
else {
super.onBackPressed();
finish();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
将webview作为类成员
WebView view;
@Override
public void onCreate(Bundle savedInstanceState) {
然后初始化
view = (WebView) this.findViewById(R.id.webView1);
view.setWebViewClient(yourWebClient);
view.getSettings().setJavaScriptEnabled(true);
view.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
view.loadUrl(url);
然后使用onKeyDown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) {
view.goBack();
return true;
}
else
{
finish();
return true;
}
}
您已经在onCreate
中声明了WebView视图
,并在那里初始化了它。因此,它在创建时成为本地的
编辑:
从2.0版开始,您还可以使用onBackPressed
令人惊叹的!是啊!非常感谢,介意我再问一个关于允许外部站点在浏览器中打开的问题吗。这是否与我的shouldoverrideurlloading相反?您可以使用intent并提供url,然后在浏览器中打开链接。intent?我知道有很多问题要问,但你能解释一下吗?@user2923771。在Webview类之后检查答案意图?我把它放在那里,得到一个错误<代码>网络视图;Intent browserIntent=新意图(Intent.ACTION\u视图,Uri.parse(“http://www.google.com")); startActivity(浏览器内容);
public void onBackPressed (){
super.onBackPressed();
if (view.canGoBack()) {
view.goBack();
}
else {
finish();
}
}