RN onMessage не запускается на Android (отлично работает на iOS)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 RN onMessage не запускается на Android (отлично работает на iOS)

Сообщение Anonymous »

Я реализую веб-сборщик в своем управляемом приложении Expo, который требует внедрения JavaScript для захвата определенных элементов.
Ниже приведен снимок моего класса WebView:

Код: Выделить всё

import Colors from 'constants/Colors'
import React, { useRef } from 'react'
import { StyleSheet, View } from 'react-native'
import { WebView } from 'react-native-webview'
import ....

const buildIdDefault = '00000000.00_v0.00.0'
const WebView2 = () => {
const webviewRef = useRef(null)
const buildIdRef = useRef(null)
const { insert } = useReceiptDb()

const injectGetBuildId = `
console.defaultLog = console.log.bind(console);
console.logs = [];
console.log = function(log){
// default &  console.log()
console.defaultLog.apply(console, arguments);
// new & array data
console.logs.push(Array.from(arguments));
// window.ReactNativeWebView.postMessage(log);
window.ReactNativeWebView.postMessage(Array.from(arguments));
}
`

/// further operations....

return (

 {
const data = event.nativeEvent.data
Log(`onMessage`, data)
if (data?.toLowerCase().includes('package version')) {
return
}
if (data?.toLowerCase()?.includes('build id')) {
const splits = data?.split(',')
buildIdRef.current = splits?.[1]
Log('build id', splits)
return
}
handleOnMessage(data)
}}
javaScriptEnabled={true}
onLoad={(syntheticEvent) => {
const { nativeEvent } = syntheticEvent
const url = nativeEvent.url
handleInjectJS(url)
}}
injectedJavaScript={injectGetBuildId}
/>

)
}
Проблема в том, что onMessage не запускается в среде Android для получения правильного идентификатора сборки из консоли WebView. Вместо этого по умолчанию используется buildIdDefault, объявленный вверху. Он отлично работает на iOS.
Среда:
Управляемая выставка, установлена ​​последняя версия SDK 51.
Буду очень признателен за любую помощь в выявлении проблемы.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ine-on-ios
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»