#javascript #react-native #webview #click
Вопрос:
кто-нибудь работал с функцией обнаружения кликов в веб-режиме? Есть веб-представление, загружающее сайт, на котором мне нужно определить, нажал ли пользователь на кнопку. Я попытался использовать введенный javascript, но не смог достичь желаемого результата. Вот мой код
<WebView scalesPageToFit
startInLoadingState
originWhitelist={['*']}
style={{ flex: 1 }} source={{ uri: url }}
javaScriptEnabled={true}
domStorageEnabled={true}
setSupportMultipleWindows={false}
/>
Как мы добавим поддержку для события click ? Нужно ли нам менять серверную часть или мы можем справиться с внешним интерфейсом ?
Ответ №1:
Я решил проблему с помощью приведенного ниже кода. Это работает для меня и обнаруживает щелчок внутри html :
import { WebView } from 'react-native-webview';
export default function App() {
const html = `
<html>
<body style='color:red'>
This is a test
<input type="button" value="Click me" onclick="msg()">
<script>
function msg() {
setTimeout(function () {
window.ReactNativeWebView.postMessage("Hello!")
}, 2000)
}
</script>
</body>
</html>
`;
return (
<View style={styles.container}>
<StatusBar style="auto" />
<WebView
source={{ html }}
style={{width:400,height:200,backgroundColor:'white',marginTop:20}}
onMessage={event => {
alert(event.nativeEvent.data);
}}
/>
</View>
);
}