ugrdursun
ugrdursun

Reputation: 369

Cant open local html file with WebView on React Native canOpenURL: failed for URL

    2020-01-29 20:32:22.470194+0300 Myapp[8905:2391245] 
-canOpenURL: failed for URL: "file:///private/var/containers/Bundle/Application/146EA027-7A**/Myapp.app/assets/src/assets/policy.html" - error: "This app is not allowed to query for scheme file"

I am getting this error on xCode console output on real device. On simulator, everything works fine.

Here is my simple full code:

import React, { Component } from 'react';
import { WebView } from 'react-native-webview';

const PolicyHTML = require('../assets/policy.html');



export default class PolicyScreen extends React.Component {


  render() {
    return (
            <WebView
            source={PolicyHTML}
            style={{flex: 1}}
            />
    );
  }
}

Couldn't find much solution about that online, what am i missing ?

Upvotes: 1

Views: 2936

Answers (3)

Taylor A. Leach
Taylor A. Leach

Reputation: 2344

The solution for me was just add originWhitelist={['*']} in the <WebView> component and then iOS would load HTML correctly.

Upvotes: 3

Fazz
Fazz

Reputation: 11

I was having the same issue, i am using webview and wanted to load my local html file in that webview, which works perfectly fine in Android but was not in IOS device. After a lot of research i ended up with the following solution.

I have placed my html file in the following path:

MyReactNativeProjectFolder>app>views>monthly>trip.html

Where monthly is my custom folder that i created myself and has a local html file called trip.html.

And in the view, lets say MyView.js, where i want to call my html file i used the following syntax:

<WebView originWhitelist={['*']} source={require('./monthly/trip.html')} ref={( webView1 ) => this.webView1 = webView1} />

MyView.js is in the follwing path:

 MyReactNativeProjectFolder>app>views>MyView.js

If you are not getting any error on simulator then this shall fix your problem, otherwise try changing the html file path as I have mentioned above, that is in the views folder, and try again.

I hope this may resolve the error Unable to open URL file:///private/var/containers/Bundle/Application/146EA027-7A/Myapp.app/assets/src/assets/policy.html

Upvotes: 1

ugrdursun
ugrdursun

Reputation: 369

I don't know is this can be considered as proper solution but here how i solved it;

I am not sure but as my thinking Xcode is not allowing some codes on html files, so I thought about that found some websites on google which converts to html files to 'clean html file' and removes the unnecessary codes. After cleaning I replaced the new clean file with old one and it worked.

Hope it helps (Especially in Privacy Policy Files).

Upvotes: 0

Related Questions