React native 我如何让React在Android中原生,并在Highcharts图表的工具提示中意识到点击事件?

React native 我如何让React在Android中原生,并在Highcharts图表的工具提示中意识到点击事件?,react-native,highcharts,react-native-android,react-highcharts,React Native,Highcharts,React Native Android,React Highcharts,我有一个用Expo构建的React本机应用程序。在上,我能够将URL传递给Highcharts,以便在单击工具提示时打开该URL: return( <View style={styles.container}> <ChartView onMessage={m => this.onMessage(m)} config={config} /> </View> U

我有一个用Expo构建的React本机应用程序。在上,我能够将URL传递给Highcharts,以便在单击工具提示时打开该URL:

return(
    <View style={styles.container}>
        <ChartView
            onMessage={m => this.onMessage(m)}
            config={config}
        />
    </View>
URL通过全局变量
window.myURL
填充,并通过以下方式发送消息:

因为即使是
console.log()
也不起作用,所以在我看来,
click
事件似乎没有被Android捕获

我怎样才能让Android知道这个事件,这样我就可以浏览消息,然后打开URL?

点击事件很好。问题在于,RN core针对Android的
实现在polyfilling
window.postMessage()中存在缺陷。这一问题在本报告中得到了很好的讨论

因此,问题的本质似乎是RN必须多填充本机
窗口。postMessage
出于某种原因,但覆盖没有及时发生,导致
窗口。postMessage
仍对本机窗口进行调用

github问题中提出的一个解决方案(针对Android)就是停止使用本机
窗口.postMessage
,直接使用内部接口,即实际的polyfill函数

// in place of `window.postMessage(data)`, use:
window.__REACT_WEB_VIEW_BRIDGE.postMessage(String(data))
不过值得注意的是,此API不是公开的,将来可能会发生更改。

点击事件是正常的。问题在于,RN core针对Android的
实现在polyfilling
window.postMessage()中存在缺陷。这一问题在本报告中得到了很好的讨论

因此,问题的本质似乎是RN必须多填充本机
窗口。postMessage
出于某种原因,但覆盖没有及时发生,导致
窗口。postMessage
仍对本机窗口进行调用

github问题中提出的一个解决方案(针对Android)就是停止使用本机
窗口.postMessage
,直接使用内部接口,即实际的polyfill函数

// in place of `window.postMessage(data)`, use:
window.__REACT_WEB_VIEW_BRIDGE.postMessage(String(data))

不过值得注意的是,此API不是公开的,将来可能会更改。

您能否将console.log更改为警报或dom更改,以确保console.log未被隐藏且不会触发单击事件?@basbase谢谢!我尝试了一个
警报
,但也没有触发。你能为我们创建一个可构建的回购协议吗?特别是
等待postMessage
修复,以及
窗口。postMessage
修复,看起来都很有希望。你试过了吗?@hackape
window.\uu反应\uu网络\uu浏览\uBridge.postMessage
成功了!!有两件事:1)如果我说
if(Platform.OS=='ios'){window.postMessage(data);}否则{window.\u REACT\u WEB\u VIEW\u BRIDGE.postMessage(message\u data);}
它不起作用,但如果我只说
window.postMessage(数据),它就行了。我知道这是无关紧要的,但听起来很奇怪。2) 发布一个答案,以便我可以奖励赏金:)你能将console.log更改为警报或dom更改,以确保console.log不被隐藏并且单击事件不会触发吗?@basbase谢谢!我尝试了一个
警报
,但也没有触发。你能为我们创建一个可构建的回购协议吗?特别是
等待postMessage
修复,以及
窗口。postMessage
修复,看起来都很有希望。你试过了吗?@hackape
window.\uu反应\uu网络\uu浏览\uBridge.postMessage
成功了!!有两件事:1)如果我说
if(Platform.OS=='ios'){window.postMessage(data);}否则{window.\u REACT\u WEB\u VIEW\u BRIDGE.postMessage(message\u data);}
它不起作用,但如果我只说
window.postMessage(数据),它就行了。我知道这是无关紧要的,但听起来很奇怪。2) 发布一个答案,以便我可以奖励赏金:)
plotOptions: {
    series: {
        point: {
            events: {
                click: function(e) {
                    setTimeout(function() {
                        console.log('bla');
                        window.postMessage(JSON.stringify({'url': window.myUrl}));
                    }, 200);
                }
            }
        }
    },
},
// in place of `window.postMessage(data)`, use:
window.__REACT_WEB_VIEW_BRIDGE.postMessage(String(data))