Пользовательская схема URL в Android WebView - PullRequest
0 голосов
/ 18 апреля 2019

Каков текущий статус, можете ли вы заставить веб-представление Android (не браузер / пользовательские вкладки Chrome) интерпретировать ссылку с помощью пользовательской схемы URL, например "bankid: ///? Autostarttoken = xxxx-xxxxc & redirect = https: //. .. "

Здесь ожидаемое поведение заключается в том, что приложение BankID должно открываться при загрузке ссылки - вместо этого появляется «err_unknown_url_scheme». Есть ли обходной путь для этого? Или это единственный способ использовать Intent?

Попробовал использовать Intent, как показано ниже, который работает, но затем возникли проблемы с параметром перенаправления url, который открывал бы ненужный браузер. Заменил его на id приложения / null, чтобы остаться в webView / app, но затем не получил ожидаемый URL обратного вызова в webView.

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

        String url = request.getUrl().toString();
        if(!url.startsWith("http") && !url.startsWith("https")) {
            Uri newUri = replaceUriParameter(Uri.parse(url), 
            "redirect", BuildConfig.APPLICATION_ID);

            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(newUri);

            startActivityForResult(intent, START_ACTIVITY_FOR_RESULT_LOGIN);
            view.reload();
            return true;
       }
}
...