Не удается открыть локальный файл html с помощью WebView в React Native canOpenURL: ошибка для URL - PullRequest
0 голосов
/ 29 января 2020
    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"

Я получаю эту ошибку на выходе консоли xCode на реальном устройстве . На симуляторе все работает отлично.

Вот мой простой полный код:

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}}
            />
    );
  }
}

Не могу найти много решений об этом онлайн, что мне не хватает?

Ответы [ 2 ]

0 голосов
/ 07 февраля 2020

У меня была та же проблема, я использую webview и хотел загрузить свой локальный файл html в это webview, который прекрасно работает в Android, но не был в IOS устройстве. После долгих исследований я нашел следующее решение:

Я поместил файл html по следующему пути:

MyReactNativeProjectFolder>app>views>monthly>trip.html

Где ежемесячно Моя пользовательская папка, которую я создал сам, имеет локальный html файл с именем trip. html.

И в представлении, скажем, MyView. js, где я хочу вызвать мой html файл, я использовал следующий синтаксис:

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

MyView. js находится в следующем пути:

 MyReactNativeProjectFolder>app>views>MyView.js

Если вы не получаете никакой ошибки на симуляторе, это решит вашу проблему, в противном случае попробуйте изменить путь к файлу html, как я уже упоминал выше, который находится в папке представлений, и попробуйте снова.

Я надеюсь, что это может устранить ошибку Невозможно открыть файл URL: ///private/var/containers/Bundle/Application/146EA027-7A/Myapp.app/assets/src/assets/policy.html

0 голосов
/ 07 февраля 2020

Я не знаю, может ли это рассматриваться как правильное решение, но вот как я это решил;

Я не уверен, но, как я думаю, Xcode не позволяет некоторые коды в файлах html, поэтому Я думал о том, что нашел несколько веб-сайтов на Google, который преобразует в html файлы в «чистый html файл» и удаляет ненужные коды. После очистки я заменил новый чистый файл на старый, и он заработал.

Надеюсь, это поможет (особенно в файлах политики конфиденциальности).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...