簡體   English   中英

啟動平板電腦時,Webview URL重定向/更改

[英]Webview URL redirects/changes when launch tablet

我在應用程序中使用Webview,並使用代碼提供了硬編碼的URL。 一切正常,但在我在10.1英寸平板電腦上進行測試時碰到了一件事。我提供的URL在手機上可以正常工作,但在平板電腦上,它將自身重定向到該URL的桌面版本。

任何想法如何防止這種情況發生。 我正在使用以下URL: http : //search.yahoo.com/mobile/s?submit= oneSearch& .intl= us& .lang= en& .tsrc= yahoo& .sep= fp& x=0&y=0&p=bike

我在URL中特別提到了移動設備,但它仍在重定向。 任何想法..??

為了處理重定向,您需要使用WebViewClient

然后重寫shouldOverrideUrlLoading方法。

“當即將在當前WebView中加載新的URL時,給主機應用程序一個接管控制的機會。如果未提供WebViewClient,則默認情況下,WebView將要求Activity Manager為該URL選擇適當的處理程序。如果WebViewClient被提供,返回true表示主機應用程序處理該URL,而返回false表示當前WebView處理該URL。”

需要使用webview客戶端

        WebView   web = (WebView) findViewById(R.id.webView1);  
        web.loadUrl(myurl.trim());
    web.setWebViewClient(new HelloWebViewClient());

private class HelloWebViewClient extends WebViewClient  
{

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        // TODO Auto-generated method stub
        super.onPageStarted(view, url, favicon);        
        Log.i(General.TAG,Tag+"Page Loading is Started...");
        web.setVisibility(View.GONE);
        pbr.setVisibility(View.VISIBLE);

    }       

    @Override
    public boolean shouldOverrideUrlLoading(WebView  view, String url)
    {           
    view.loadUrl(url);  
    return true;            
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);            
        Log.i(General.TAG,Tag+"Page Loading is Finished");

        web.setVisibility(View.VISIBLE);
        pbr.setVisibility(View.GONE);
        web.requestFocus();
    }



}

@Eldhose M Babu和@ankitmakwana:我曾經用過,但是我不確定那是什么。 我已附上代碼,請看一下並指導我:

mWebview.setWebViewClient(new WebViewClient() {

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);

            mWebview.setVisibility(View.GONE);


        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onPageFinished(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onPageFinished(view, url);

            mWebview.setVisibility(View.VISIBLE);

            mWebview.requestFocus();
        }

        public void onLoadResource(WebView view, String url) {
            mWebview.loadUrl("javascript:(function() { "
                    + "document.getElementsByTagName('header')[0].style.display = 'none'; "
                    + "})()");

            mWebview.loadUrl("javascript:(function() { "
                    + "document.getElementsByTagName('footer')[0].style.display = 'none'; "
                    + "})()");

            mWebview.loadUrl("javascript:(function() { "
                    + "document.getElementsByTagName('section').search_again.style.display = 'none'; "
                    + "})()");
        }
    });

    mWebview.loadUrl("http://search.yahoo.com/mobile/s?submit=oneSearch&.intl=us&.lang=en&.tsrc=yahoo&.sep=fp&x=0&y=0&p=bike");
    setContentView(mWebview);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM