1

私は自分のアプリケーションで webview を使用しており、コードを使用してハードコードされた URL を提供しています。すべてが完全に正常に動作していますが、10.1 インチ タブレットでテストしたときに 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 で具体的にモバイルについて言及しましたが、それでもリダイレクトしています。何か案が..??

4

3 に答える 3

0

@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);
于 2012-09-05T07:08:36.040 に答える
0

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();
    }



}
于 2012-09-05T07:04:59.053 に答える
0

リダイレクトを処理するには、WebViewClientを使用する必要があります

次に、 shouldOverrideUrlLoadingメソッドをオーバーライドします。

「新しい URL が現在の WebView にロードされようとしているときに、ホスト アプリケーションに制御を引き継ぐ機会を与えます。WebViewClient が提供されていない場合、デフォルトで WebView は Activity Manager に URL の適切なハンドラーを選択するように要求します。WebViewClient の場合true を返すとホスト アプリケーションが URL を処理することを意味し、false を返すと現在の WebView が URL を処理することを意味します。」

于 2012-09-05T07:01:56.397 に答える