我尝试加载 HTML 文件取决于其他 .js 文件。所以我写了这样的代码,但是在 webview 中得到了纯文本。render = () => { let source; if (__DEV__) { source = require('./vendor/Editor/index.html'); } else { source = Platform.OS === 'ios' ? require('./vendor/Editor/index.html') : {uri: 'file:///android_asset/vendor/Editor/index.html'}; } return ( <WebView startInLoadingState source={source} onMessage={this.handleMessage} automaticallyAdjustContentInsets={false} style={[ AppStyles.container, styles.container, {height: this.state.visibleHeight}, ]} /> ); };我像这样简化代码,但它也不起作用。 render = () => { setTimeout(() => { this.webview.injectJavaScript( 'window.ReactNativeWebView.postMessage(document.body.innerHTML)', ); }, 3000); return ( <WebView source={require('./vendor/GrEditor/index.html')} onMessage={e => console.log('e: ', e)} /> ); };对不起语法不好。
1 回答

料青山看我应如是
TA贡献1772条经验 获得超8个赞
要在 android 中加载本地 html 文件,即使在开发模式下也需要使用 android 资产路径。所以它会是这样的:
let source = Platform.OS === 'ios' ? require('./vendor/Editor/index.html') : {uri: 'file:///android_asset/vendor/Editor/index.html'};
将您的供应商文件夹复制到 android.assets 文件夹(project_folder\android\app\src\main\assets
)中。
这是供您参考的链接:https ://github.com/react-native-community/react-native-webview/blob/master/docs/Guide.md#loading-local-html-files
添加回答
举报
0/150
提交
取消