播放youtube嵌入视频时反应本机Webview崩溃

时间:2019-02-20 23:57:39

标签: react-native webview

播放视频时,播放音乐应用会崩溃。

短信或电话提示音也会崩溃

任何系统声音都可能导致崩溃

我试图升级到最新版本的react native并遇到相同的问题。

请帮助我

import { WebView } from 'react-native';

@observer
export default class MyWebView extends Component<any>
{
    setPlay = (){
         this.setState({play: true})
    }
    render() {
        const uri = 'https://www.youtube.com/embed/71pyOB4TPRE'
        let play = this.state.play
        return (
          <View >
            {!play ? <TouchableOpacity  onPress={this.setPlay}>
                <Image style={{ width: 40, height: 40 }} source={playerIcon} />
            </TouchableOpacity> : null}

            { play? 
            <View style={{width: 450, height:300}} >
                <WebView
                    source={{ uri: uri }}
                />
            </View> :null}
          </View>
        )
    }
}

如果直接显示网络视图,则不会崩溃

    render() {
        const uri = 'https://www.youtube.com/embed/71pyOB4TPRE'
        let play = this.state.play
        return (
          <View >
            <View style={{width: 450, height:300}} >
                <WebView
                    source={{ uri: uri }}
                />
            </View>
          </View>
        )
    }
}

仅限Android

1 个答案:

答案 0 :(得分:0)

最后,我找到了一个非常愚蠢的解决方案。 将此代码添加到Entery文件index.js中

<View style={{ height:0 }}><WebView source={{ html: `` }} /></View>

import TabNavigator from './router'
const AppContainer = createAppContainer(TabNavigator)

export default class App extends React.Component {
    render() {
        if( Platform.OS === 'ios' ){
            return <AppContainer />
        }

        return <React.Fragment>
            <View style={{ height:0 }}><WebView source={{ html: `` }} /></View>
            <AppContainer />
        </React.Fragment>
    }
}

我没有找到具体原因 但这对我有用

很奇怪,难道只有我有这个问题吗?