ReactNative 使用WebView的大坑

ReactNative项目中需要用到WebView,初次使用WebView遇到的坑

先上代码:

import React, { Component} from "react"

import {WebView} from "react-native-webview"

import { View, Text } from "react-native"

class MyWeb extends Component {

    render() {

        return(

            <View style={{overflow: 'hidden'}}>

                <Text>开始</Text>

            <WebView

                source={{html:"<h1 style='color:#ff0000'>Hello word</h1>"}}

                style={{marginTop:30,flex:1}}

                originWhitelist={['*']}

                onNavigationStateChange={this.onNavigationStateChange}

                ></WebView>

                <Text>结束</Text>

            </View>

        )

    }

}

 要在RN中实现WebView,首先需要下载react-native-webview组件,安装方法:

yarn add react-native-webview    或者  npm install --save react-native-webview

后直接运行项目,坑就来:

一、项目报:Error:crypto.getRandomValues() not supported.图如下:

这错误提示缺少包,根据错误提示的地址,发现需要下载react-native-get-random-values这个组件,不明白为什么下载web-view的时候不自动下载。添加方法:

npm install --save react-native-get-random-values

 添加成功后,运行项目,发现还是报同样的问题。这就难受了,百度也找不到结果,后来在webView的Issues才找到解决办法,原来需要在项目的index.js中引入刚才添加的包,我的index.js如下:

import "react-native-get-random-values"

import {AppRegistry} from 'react-native';

import App from './view/Analysis/AnalysisWebView';

import {name as appName} from './app.json';

 

AppRegistry.registerComponent(appName, () => App);

再次运行,终于不报错了。

但是,错误是不报错了,但是,我的WebView显示不出来啊,就跟没有这个组件一样,效果:

如图,WebView的前后信息都出来了,就是WebView没有任何的表示,各种百度,查找都没有找到解决办法,

后来,终于找到问题了,解决这个问题就是<WebView>组件不能被其他组件包裹!,坑啊,没有任何一个地方说明这个问题,改正之后,代码:

import React, { Component} from "react"

import {WebView} from "react-native-webview"

import { View, Text, Button, StyleSheet } from "react-native"

class MyWeb extends Component {

    render() {

        return(

            <WebView

                source={{html:"<h1 style='color:#ff0000'>Hello word</h1>"}}

                style={{marginTop:30,flex:1}}

                originWhitelist={['*']}

                onNavigationStateChange={this.onNavigationStateChange}

                ></WebView>

        )

    }

}

一个简单的WebView这才起来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值