【发布时间】:2019-05-21 23:45:09
【问题描述】:
我在我的 react-native 组件中创建了一个 webview,然后我想使用 postMessage 发送数据并通过 OnMessage 读取它。我实际上不知道问题是在我的 postMessage 还是在我的 webView 的 onMessage 选项中。你能告诉我问题出在哪里吗? 这是我的应用组件:
let Script1 = `
var data = {
message : "OnFocusEvent"
};
window.postMessage(JSON.stringify({data}),"*");
`;
export default class App extends Component {
constructor(props) {
super(props);}
render() {
return (
<View style={styles.container}>
<RNEnhanceWebview
ref={ref => (this.webView = ref)}
style={{ flex: 1 }}
source={{
html:
' </br></br></br></br><form> <input id="input" class="input"
type="text" placeholder="name"/></form>'
}}
keyboardDisplayRequiresUserAction={false} //ios
autoFocus={true} //android
injectedJavaScript={Script1}
automaticallyAdjustContentInsets={false}
allowFileAccessFromFileURLs={true}
scalesPageToFit={false}
mixedContentMode={"always"}
javaScriptEnabled={true}
javaScriptEnabledAndroid={true}
startInLoadingState={true}
onMessage={event => {
console.log(event.nativeEvent.data);
console.log(JSON.parse(event.nativeEvent.data));
}}
onLoad={() => {}}
/>
</View>
}
您对显示我的消息数据有什么建议吗?
【问题讨论】:
-
您已将脚本命名为 InjectScript1,但在 WebView 上您将其用作 Script1。尝试注入JavaScript={InjectScript1} 看看它是否有效
-
对不起!是的,我试过了,但它不起作用
标签: react-native webview postmessage