我想在运行时创建一个linearLayout,一个WebView,而我的android项目中没有任何xml,并在webView中加载一个url。
我已经宣布了一个webView:
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);
然后我添加了一个webView:
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中加载网址。请帮忙。
答案 0 :(得分:0)
我认为你应该使用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);
}
}
答案 1 :(得分:0)
我有类似于你的问题,我最终做的是以更好的方式设置WebViewClient
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代码。设置也会推荐getSettings().setJavaScriptEnabled(true);
因为大多数网站都需要在移动视图上运行javascript,例如Twitter