Я работаю над приложением React-Native, которое должно получать ответ от веб-просмотра.
проблема в том, что у меня есть эта функция в игре, и мне нужно переопределить ее, чтобы мое приложение получило ссылку и откройте ее в другом веб-просмотре вместо текущего.
function getPrepayArg(serverid, actid, payIndex) {
console.log(payIndex);
if(payIndex == 88 || payIndex == 30){
window.open("https://somelink/user/exchange");
} else(window.open("https://somelink/user/exchange"));
}
Когда игрок нажимает кнопку внутри игры, вызывается функция.
I Я пытался переопределить его, используя метод «введенного JavaScript» из WebView.
Мой код выглядит так:
<WebView ref={WEBVIEW_REF}
injectedJavaScriptBeforeContentLoaded={false}
injectedJavaScript={jsCode}
onLoadEnd={OverrideFunction}
onMessage={(event) => {
const { data } = event.nativeEvent;
treatEvent(data)
}}
onNavigationStateChange={(navState) => { console.log(jsCode); setCanGoBack(navState.canGoBack) }}
source={{uri: 'https://swdanceh5.com/'}}
style={{flex: 1}}
/>
и переменная jsCode:
const jsCode = `
document.querySelectorAll('.icons-ft-naptien')[0].addEventListener('click', stopDefAction, false);
document.querySelectorAll('.icons-ft-naptien')[0].addEventListener('click', sendLinkDiamante, false);
function sendLinkDiamante(){
ReactNativeWebView.postMessage(String(document.querySelectorAll('.icons-ft-naptien')[0].getAttribute('href')));
}
document.querySelectorAll('.icons-ft-fanpage')[0].addEventListener('click', stopDefAction, false);
document.querySelectorAll('.icons-ft-fanpage')[0].addEventListener('click', sendLinkFacebook, false);
function sendLinkFacebook(){
ReactNativeWebView.postMessage(String(document.querySelectorAll('.icons-ft-fanpage')[0].getAttribute('href')));
}
//Stopping Default Button click action
function stopDefAction(evt) {
evt.preventDefault();
}
function getPrepayArg(serverid, actid, payIndex){
console.log(payIndex);
if(payIndex == 88 || payIndex == 30){
ReactNativeWebView.postMessage('https://swdanceh5.com/user/exchange');
} else(ReactNativeWebView.postMessage('https://swdanceh5.com/user/exchange'))
}
`;