1

在过去的几周里,我试图弄清楚如何将一个进行 3d 建模(通过 THREE.js)的外部 Web 应用程序包含到一个 viro react 应用程序中。我尝试了 webview 并且有效,但我需要将模型导入到我的 Viro 应用程序中。我尝试了 WebViewBridge 模块(理论上它可以将 .obj 文件作为字符串从 webview 发送到我的应用程序,以便我可以在 AR 中显示它)但它似乎不适用于 Viro 使用的 Native react 版本。

            <View >
                <WebViewBridge                      
                    ref="webviewbridge"                 
                    source={{uri: 'http://www.google.com'}}>
                </WebViewBridge>
            </View>

当我将“webviewbridge”更改为“webview”时,它可以工作,如果我按下按钮,它会在新视图中显示谷歌。我的目标是显示网络应用程序,单击按钮我可以获得呈现的 3D 模型并在增强现实中显示它(viro-react 的一个功能)。

技术信息:

4

1 回答 1

0

我的错,它现在使用“injectedJavaScript”道具。

let jsCode = " document.querySelector('#myContent').style.backgroundColor = 'green';";

    return(
            <View style={localStyles.viroContainer}> //this just sets flex to 1


                <WebView
                    source={{ html: "<h1 id='myContent'>Hello</h1>" }}
                    style={{ flex: 1 }} 
                    ref={ webview => { this.webview = webview; }}
                    injectedJavaScript={jsCode}
                    javaScriptEnabled={true}>
                </WebView>

                <TouchableHighlight style={localStyles.overlayButton} 
                    onPress={this.sendMessageToWebView2} underlayColor='transparent'>
                        <Text>Send message to WebView</Text>
                </TouchableHighlight>

            </View>


        );
    }

我现在在按钮单击(sendmessagetowebview2)上设法在我的 webview 中收到带有字符串的警报,但我还没有设法更改注入的 JavaScript。

于 2018-03-06T09:54:23.847 回答