在 android 中的 webview 运行时更改 URL

Change URL at runtime in webview in android

我创建了一个小程序,可以在 webview 中加载特定网站。 我想关注 URL,如果 URL 包含 'xxx' 单词,那么它应该导航到另一个页面。 例如,如果我设置 www.example.com。我现在可以导航到 www.example.com 的任何页面。如果我的 Url 包含像 'xxx' 这样的词,那么我想退出那个 url 并导航到另一个 url。 有可能吗? 如何? 谢谢

//Here is my code.
public class MainActivity extends Activity {
private WebView Browser;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Browser = (WebView) findViewById(R.id.webView1);


    Browser.setWebViewClient(new WebViewClient()
    {
        @Override
        public void onLoadResource(WebView view, String url) {
            // TODO Auto-generated method stub
            super.onLoadResource(view, url);
        }
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            System.out.println("when you click on any interlink on webview that time you got url :-" + url);
            int len = url.length();
            if(url.contains("xxx"))
            {
                url = "http://www.example.com/xxxx";
                Toast.makeText(MainActivity.this, "URL changed.."+url, Toast.LENGTH_LONG).show();
            }    
            else
                Toast.makeText(MainActivity.this, "URL not changed.."+url, Toast.LENGTH_LONG).show();
            return super.shouldOverrideUrlLoading(view, url);
        }



    });

    Browser.getSettings().setLoadsImagesAutomatically(true);
    Browser.getSettings().setJavaScriptEnabled(true);
    Browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);

    Browser.loadUrl("http://www.example.com/");
    }


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

是的..您可以导航 webview 运行时。将您的逻辑放入 WebViewClient 的 onPageFinished() 方法中。

public void onPageFinished(WebView view, String url) {
    if (webView.getUrl().contains("xxx")) {
        URL = "http://www.example.com/xxxx";
        webView.loadUrl(URL);
    }
}