Git Product home page Git Product logo

adymilk / reactnative-video Goto Github PK

View Code? Open in Web Editor NEW
85.0 9.0 15.0 17.45 MB

仿 Bilibili 开发的短视频客户端,试用React Native 开发。实现了一套代码同时运行在安卓、苹果、浏览器三端共享。特色功能有美女视频直播,社区交流,视频分类,高清无码不卡顿!

Home Page: https://adymilk.github.io/

JavaScript 59.28% Java 34.74% Objective-C 4.15% Starlark 1.84%

reactnative-video's Introduction

软件名称:昕视界

项目介绍

1、React Native 开发的跨平台APP

2、视频接口来源于网络

3、代码开源,供有需要的同学学习和参考

新特性

[ ] 1、视频评论 [ ] 2、视频弹幕 [ ] 3、视频历史记录 [ ] 4、用户上传视频

开发笔记

1、自定义 Navigator Header

import Header from "./component/header/Header";

const TabStack = createStackNavigator(
    {
        tabs: MaterialTopTabNavigator,
        VideoPlayDetail: VideoPlayDetail,
        LivePlayOnWebview: LivePlayOnWebview,
        CategoryList: CategoryList,
        Dance: Dance,
        CommunionDetail: CommunionDetail,

    },
    {
        navigationOptions: {
            //重点就在这里,<Header/> 是我自定义的 header
            header: <Header/>,
        },
    }
);

2、更改安卓项目包名后,运行报错 Application adymilk.xinvideohasnotbeenregistered 如图: 图片来源网络

解决方法如下:

打开RN 项目根目录下的 app.json

{
  "name": "adymilk.xinvideo",
  "displayName": "adymilk.xinvideo"
}

我的包名修改后的是 com.adymilk.xinvideo,在这里只需要填写com. 后面的名称即可

3、安卓手机返回键 实现 Webview 网页后退功能

componentDidMount() {
        BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
    }

componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
}


// 获取 webview 事件返回的 canGoBack 属性 , 判断网页是否可以回退
_onNavigationStateChange (navState){
    if(navState.canGoBack){
        global.isBack = true;
    }else{
        global.isBack = false;
    }
}

handleBackPress = () => {
    if (isBack) {
        this.refs['webView'].goBack();
        return true;
    }
}
    
render() {
        return (
            <WebView
                ref="webView"
                source={{uri: 视频播放链接}}
                onNavigationStateChange={this._onNavigationStateChange}
            />
        );
    }

代码要点解析

ref="webView" 相当于 class="webView 这样来理解会比较容易。 然后在 RN 生命周期 componentDidMountcomponentWillUnmount 中调用 handleBackPress 方法。 通过 this.refs['webView'].goBack(); 网页就可以通过安卓返回键实现返回了。

reactnative-video's People

Contributors

adymilk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

reactnative-video's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.