网址加载浏览器而不是WebView android
问题描述:
我想创建一个linearLayout,一个WebView的运行时没有任何xml在我的android项目和加载一个url在webView中。网址加载浏览器而不是WebView android
我宣布网页视图:
WebView web =new WebView(this);
我添加了一个的LinearLayout:
LinearLayout view = new LinearLayout(MainActivity.this);
view.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
view.setOrientation(LinearLayout.VERTICAL);
然后我添加了一个web视图它:
web.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
view.addView(web);
现在我加载网址:
web.loadUrl("https://www.google.com");
web.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
但是没有任何反应。
如果我没有设置webViewClient,那么url在浏览器中加载而不是webView。 我只想在webView中加载url。请帮忙。
答
我认为你应该使用WebVideClient,这里是一个简单的例子:
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
web.loadUrl("http://www.google.com");
public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
}
// To handle "Back" key press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
web.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
+0
当我使用setWebViewClient ..它甚至没有启动webView。所以上面的代码不起作用。如果我只是使用web.loadurl(“https //:google.com”)加载网址,那么它在设备浏览器中的开放网址..不在webView中。 –
答
我有类似你的问题的东西我最后做的是建立一个更好的方式
public WebView web;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_webpage_detail, container, false);
web = ((WebView) rootView.findViewById(R.id.webpage_detail));
web.loadUrl(mItem.url);
web.setWebViewClient(new myWebClient());
web.getSettings().setJavaScriptEnabled(true);
return rootView;
}
public class myWebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return true;
}
的WebViewClient
只是看看这个工作适合我的webViewClient代码。也设置将建议getSettings().setJavaScriptEnabled(true);
因为大多数网站需要JavaScript运行在移动视图,例如Twitter
然后你的问题是什么? –
只是'返回true;'而不是'return false;' –
首先设置客户端然后加载url! –