(React Native) загрузите локальный HTML-файл в WebView

Я пытаюсь загрузить локальный на WebView на Реагировать Уроженца:

// load local .html file
const PolicyHTML = require('./Policy.html');

// PolicyHTML is just a number of `1`
console.log('PolicyHTML:', PolicyHTML);

// will cause an error: JSON value '1' of type NSNumber cannot be converted to NSString
<WebView html={PolicyHTML} />

на .html файл должен читаться как строка, а не как представитель ресурса.

как я могу загрузить на WebView в реагировать родной?


кстати, каков тип этих представителей ресурсов из require()? Это number?

4 ответов


попробуй:

const PolicyHTML = require('./Policy.html');

<WebView
  source={PolicyHTML}
  style={{flex: 1}}
 />

я сталкиваюсь с этим сообщением в поисках загрузки статического html.
Если ваш html-код извлекается с помощью, например, API, вы можете отобразить WebView следующим образом:

<WebView
    originWhitelist={['*']}
    source={{ html: html, baseUrl: '' }}
/>

обратите внимание, что originWhitelistтребуется, как описано в документация:

обратите внимание, что статический html потребует установки originWhitelist для пример для ["*"].


попробуйте это :

  • добавить .HTML-код файл в вашем проекте.
  • напишите такие строки кода в файле, где вы хотите использовать компонент WebView

    const OurStoryHTML = require ('./OurStory.html')

  • <WebView source={OurStoryHTML} style={{flex: 1, marginTop : 44}} />

Это может помочь вам.


<View style={{flex: 1}}>
    <WebView
      style={{flex: 1}}
      source={require("./resources/index.html")}
    />
</View>

чтобы сделать WebView, родитель должен иметь измерение или flex: 1. Мы могли бы установить WebView на flex: 1 тоже, чтобы он заполнял родителя.