2015-10-16 51 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

相關問題