10

特定の WebView に対して既に JavaScript をアクティブにしており、ブラウザではなく WebView 内で新しいリンクを開きます。 これが主な活動です

    package com.Afrogfx.pronouns;

    import android.os.Bundle;
    import android.annotation.SuppressLint;
    import android.app.Activity;
    import android.view.Menu;
    import android.webkit.WebView;

    @SuppressLint("SetJavaScriptEnabled")
    public class MainActivityPronouns extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_activity_pronouns);

    WebView wvHtml = (WebView) findViewById(R.id.webview);
    wvHtml.getSettings().setBuiltInZoomControls(true);
    wvHtml.getSettings().setJavaScriptEnabled(true);
    wvHtml.loadUrl("http://afrogfx.com/appcatcategories.php?catid=13&parentid=11");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_main_activity_pronouns, menu);
    return true;
    }
    }

ブラウザーではなく WebView (アプリ) 内のサイト内のすべてのリンクを開くようにコードを処理するにはどうすればよいですか (ブラウザーで開くユーザーには表示されません)。

4

3 に答える 3

25

そのためには、webclientを拡張するサブクラスを作成し、そのクラスのメソッドonPageFinished(WebView c、String url)と
public boolean shouldOverrideUrlLoading(final WebView view、final String url)を使用します。

ここにコードがあります-

 myWebView.setWebViewClient(new WebViewClient()       
        {
             @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) 
            {
                //view.loadUrl(url);
                System.out.println("hello");
                return false;
            }
        });
        myWebView.loadUrl(url);
于 2012-11-10T11:25:12.523 に答える
-2

だからあなたはWebviewClientを使用する必要があります..ここにクラスがあります

private class HelloWebViewClient extends WebViewClient 
{
    @Override
    public boolean shouldOverrideUrlLoading(final WebView view, final String url) 
    {
        Utils.showActivityViewer(WebsiteActivity.this);
        new Thread(new Runnable() 
        {

            public void run()
            {
                view.loadUrl(url);
            }



            }).start();  



        return true;
    }
}

としてwebviewにバインドします

webview.setWebViewClient(new HelloWebViewClient());

http://developer.android.com/reference/android/webkit/WebViewClient.htmlを参照してください

于 2012-11-10T11:19:10.260 に答える