возник затык.
1. Имеется приложение с WebView, и есть намерение вызывать нативный диалог Share с веб-страницы в WebView. Web Share API разумеется, не работает, а реализовать как бы надо.
2. На просторах интернета нашёл вариант реализации, где создаётся JavaScriptInterface для шейринга, который по идее может вызываться через JS, вот саму функцию поделиться надо реализовать самому (https://stackoverflow.com/questions/52723205/navigator-share-is-not-working-in-a-webview). Отдельно я погуглил, как делается этот вот шейр, нашёл непосредственно на сайте гугла пример, однако там используется startActivity(), которая в моём случае не работает (https://developer.android.com/training/sharing/send#java).
3. Скриншот монстра Франкенштейна прилагается
Подскажите, рабочий ли это вообще вариант, и если да, где я туплю?
Если я правильно понял, то тебе входной параметр надо добавить Activity activity и вызывать activity.startActivity(shareIntent)
тебе нужно в этот интерфейс прокинуть ссылку на активити и из нее уже вызвать старт
Я примерно понял, что этот метод должен вызываться в контексте активности, вот только чем мне инициализировать активность в данном случае - тут вот не могу понять.
у тебя класс без параметров, сделай контруктор с параметром активности и передай)
если выдернуть с ответа, то так будет mWebView.addJavascriptInterface(new JavaScriptShareInterface(this), "AndroidShareHandler");
О-о-о, так значительно понятнее стало, спасибо огромное, буду пробовать в эту сторону.
Единственный вопрос - у меня webView в фрагменте. Из фрагмента такую штуку вызывать можно?
this.requireActivity()
mWebView.addJavascriptInterface(new JavaScriptShareInterface(requireActivity()), "AndroidShareHandler");
Обсуждают сегодня