我正在尝试两天找到一个代码来处理我的工作..我正在学习本教程:http://techvalleyprojects.blogspot.ro/2011_08_01_archive.html
我遇到以下问题:我想在我的应用中打开的网页未加载到我的网页浏览器中,而是在默认浏览器中打开。如何修改我的代码,以便在webview中打开所有链接。我需要一个简单的解决方案,因为我对Android很新。
谢谢。
package com.example.name;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
public class MainActivity extends Activity {
WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// find the WebView by name in the main.xml of step 2
browser=(WebView)findViewById(R.id.wvwMain);
// Enable javascript
browser.getSettings().setJavaScriptEnabled(true);
// Set WebView client
browser.setWebChromeClient(new WebChromeClient());
// Load the webpage
browser.loadUrl("http://news.google.com/");
}
}
答案 0 :(得分:11)
您需要像这样实施setWebViewClient(....)
。
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
让您的活动如此
public class MainActivity extends Activity {
WebView browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// find the WebView by name in the main.xml of step 2
browser=(WebView)findViewById(R.id.wvwMain);
// Enable javascript
browser.getSettings().setJavaScriptEnabled(true);
// Set WebView client
browser.setWebChromeClient(new WebChromeClient());
browser.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
// Load the webpage
browser.loadUrl("http://news.google.com/");
}
}
答案 1 :(得分:0)
添加此setContentView(browser);
代替setContentView(R.layout.activity_main);
,但在方法的最后添加。
编辑:
另外,添加:
browser.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
});