Android - Как открыть фрагмент из текущей активности фрагмента при нажатии на URL в WebView? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть фрагмент активности с WebView, в котором я хочу открыть или перенаправить на другой фрагмент при нажатии на определенный URL.

Примечание: Если другой URL, отличный оттребуемый выбран, он должен открыться в том же текущем фрагменте.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

в on-create, где вы дали код для веб-просмотра, добавьте это (лучше добавить в конец метода oncreate)

private class MyWebViewClient extends WebViewClient {

   @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        if (url.equals("your url here")) {
            Fragment newFragment = YourNewFrag();
            // consider using Java coding conventions (upper first char class names!!!)
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            // Replace whatever is in the fragment_container(usually a frame layout) view with this fragment,
            // and add the transaction to the back stack
            transaction.replace(R.id.fragment_container, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();
            return true;
        }
        return false;
    }
}
0 голосов
/ 22 октября 2018

Вы должны отменить загрузку URL.Используйте что-то вроде следующего:

webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.startsWith("your_url")) { //you can also use indexOf, equales etc. 
        // do what's needed
        return true;
    }
    return false;
}

});

...