@referakk

Как реализовать открытие ссылок внутри webview?

Здравствуйте.

У сайта есть мобильное приложение - голый webview. Проблема в том, что при переходе по ссылке mysite.ru/any/link в приложении открывается главная страница, а не url назначения. Подскажите, пожалуйста, это можно как-то поправить?

И заранее сорри за, возможно, тупой вопрос, я совсем не разработчик.

Сделано:
В манифесте добавил

5b112124c7dc0142263463.jpeg

в майнактивити

Uri data = getIntent().getData();
  • Вопрос задан
  • 2759 просмотров
Пригласить эксперта
Ответы на вопрос 1
Urichalex
@Urichalex
Кратко о себе)
Както так
public class MainActivity extends AppCompatActivity {

    WebView webView;
    private Activity activity;
    private SwipeRefreshLayout swipe;

    public MainActivity()
    {
        activity = this;
    }

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webView);
        
        WebSettings webSettings = webView.getSettings();
        // Включаем js
        webSettings.setJavaScriptEnabled(true);

        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView webView, String url) {
                // все ссылки, в которых содержится домен
                // будут открываться внутри приложения
                if (url.contains("my-site.ru")) {
                    return false;
                }
                // все остальные ссылки будут спрашивать какой браузер открывать
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                activity.startActivity(intent);
                return true;
            }
        });
        String urlAddress = getString(R.string.main_url_schema) + "://" + getString(R.string.main_url_domain);
        webView.loadUrl(urlAddress);
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы