2017-06-11 45 views
0

我正在向webview发送本地文件路径,并希望在画布内显示图像。在反应原生中访问WebView中的本地文件

我得到的路径进入我的网页流量,但不能加载它,这里的消息,我得到:

不允许加载本地资源:文件:////用户/ ...

是否有任何解决方案来访问本地文件或任何变通?

<WebView 
    style={{flex:1,borderWidth:2}} 
    source={require('./webview/canvas.html')} 
    ref={webview => {this.webview = webview; }} 
    onLoad={this._webViewLoaded.bind(this)} 
    onMessage={this._getMessageFromWebView.bind(this)} 

/>

然后用发送数据:

this.webview.postMessage(this.state.path); 

哪里this.state.path是使用相机组件

+0

应该将图像添加到项目资产中。 – vijayst

+0

@vijayst你能给我一个例子吗? – Ethrak

+0

你可以用''来源更新问题吗?将帮助我解决它的答案。 – vijayst

回答

0

我使用后的本地路径解决这个问题。 使用react-native-fetch-blob:

RNFetchBlob 
     .config({ 
      fileCache : false, 
      appendExt : 'jpg' 
     }) 
     .fetch('GET', this.state.path) 
     .then((res) => { 
      let base64Str = res.base64().then((result)=>{ 
       this.setState({imageBase64 : result}) 
       this.webview.postMessage(this.state.imageBase64); 
      }); 
     }) 
相关问题