2015-10-16 57 views
0

我想创建一个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。请帮忙。

+0

然后你的问题是什么? –

+1

只是'返回true;'而不是'return false;' –

+1

首先设置客户端然后加载url! –

回答

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); 
    } 
} 
+0

当我使用setWebViewClient ..它甚至没有启动webView。所以上面的代码不起作用。如果我只是使用web.loadurl(“https //:google.com”)加载网址,那么它在设备浏览器中的开放网址..不在webView中。 –

0

我有类似你的问题的东西我最后做的是建立一个更好的方式

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

相关问题