После создания веб-просмотра включите JavaScript, а также присоедините интерфейс JavaScript и назовите его как-нибудь:
WebSettings webSettings = webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webview.addJavascriptInterface(this, "InterfaceName");
Теперь вы можете назначить любую функцию Java в интерфейсе JavaScript и получать к ней доступ через веб-страницы.
Пример получения токена FCM пользователя:
@JavascriptInterface
public String readToken(){
String token = FirebaseInstanceId.getInstance().getToken();
return token;
}
Пример получения ключа токена доступа FCM ( ссылка ):
@JavascriptInterface
private static String readToken() throws IOException {
GoogleCredential googleCredential = GoogleCredential
.fromStream(new FileInputStream("service-account.json"))
.createScoped(Arrays.asList(SCOPES));
googleCredential.refreshToken();
return googleCredential.getAccessToken();
}
Чтобы добавитьтокен доступа к заголовку HTTP-запроса:
URL url = new URL(BASE_URL + FCM_SEND_ENDPOINT);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestProperty("Authorization", "Bearer " + getAccessToken());
httpURLConnection.setRequestProperty("Content-Type", "application/json; UTF-8");
return httpURLConnection;
, и вы можете вызвать эту функцию с помощью JavaScript внутри WebView, для которого вы определили интерфейс:
<script>
var token=InterfaceName.readToken();
</scritp>