1日选项卡的WebView打开URL成功,但第二个选项卡中打开链接的浏览器
问题描述:
我有两个选项卡此应用程序。当我访问布局时,第一个选项卡会成功打开,并在网页视图中加载网页,作为选项卡的内容。但是,当我尝试访问第二个选项卡时,它不会将web视图显示为内容;因此它指向浏览器打开网页。我对两个类都有相同的代码,这些代码可以在我的主要活动中通过我的意图进行访问。下面是我有:1日选项卡的WebView打开URL成功,但第二个选项卡中打开链接的浏览器
TabbedActivity.java
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TabHost;
public class TabbedActivity extends TabActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TabHost host=getTabHost();
host.addTab(host.newTabSpec("g")
.setIndicator("Google")
.setContent(new Intent(this, WebActivity2.class)));
host.addTab(host.newTabSpec("y")
.setIndicator("Yahoo")
.setContent(new Intent(this, WebActivity3.class)));
}
}
这里是我作为意图两类:
WebActivity2.java
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
@SuppressLint("SetJavaScriptEnabled")
public class WebActivity2 extends Activity {
WebView browser;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
WebView browser = new WebView(this);
setContentView(browser);
browser.loadUrl("http://www.google.com");
}
}
WebActivity3.java
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
@SuppressLint("SetJavaScriptEnabled")
public class WebActivity3 extends Activity {
WebView browser;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
WebView browser = new WebView(this);
setContentView(browser);
browser.loadUrl("https://m.facebook.com/ama.manilacampus");
}
}
我不认为在我的XML布局中的错误,因为它在第一个标签中效果很好。这可能是什么原因?
答
在加载Facebook的链接时,网页流量重定向。由于重定向,默认情况下,您的webview将启动浏览器活动。
browser.setWebViewClient(new WebViewClient() {
//to avoid browser prompting for actions when clicking on URLs
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
:您可以通过具有下面的代码改变这种行为
答
我认为这很可能是您的网页重定向。请参阅此相关问题以阻止WebView
打开浏览器应用程序。您需要实施WebViewClient
,并返回true
,其中shouldOverrideUrlLoading
。