作者: admin

  • 让低版本浏览器兼容es5属性和方法

    ie8 兼容 es5 es6 es7 兼容 ie8 babel

    老的浏览器只支持es5的一些属性和方法,并不是全部。如果也想让它们能识别使用。可以在浏览器最前面引入:

    http://www.bootcdn.cn/es5-shim/

    <script type="text/javascript" src="http://cdn.bootcss.com/es5-shim/4.5.9/es5-shim.min.js"></script>
    <script type="text/javascript" src="http://cdn.bootcss.com/es5-shim/4.5.9/es5-sham.min.js"></script>

     

    可以查看都兼容处理了哪些es5属性和方法:

    https://www.npmjs.com/package/es5-shim

     

     

    同理也有es6和es7的兼容库:我们可以一次性引入

    <script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-sham.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/json3/3.3.2/json3.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-shim.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/es6-shim/0.34.2/es6-sham.min.js"></script>
    <script src="https://wzrd.in/standalone/es7-shim@latest"></script>

    安装包下载:地址1

     

     

     

  • react native视频播放器——react-native-video

    安装:

    npm i -S react-native-video
    // npm install react-native-video --save

     

    RN不像原生Andriod或者IOS,RN在开发的时候,是可以动态刷新查看效果,类似于混合App的开发,但是又不同于混合App,一些原生开发的组件,是无法做到直接动态刷新的,想要在引入原生组件之后,还能看到效果,一个办法就是重新编译安装一遍,但是这种方法明显太浪费时间,另外一个方法就是使用rnpm。

    http://blog.csdn.net/DeepLies/article/details/53054628

    react native视频播放是调用了原生组件,所以需要在执行以下代码:

    rnpm link react-native-video

    (这里的rnpm需要用npm额外安装   npm install rnpm -g)

     

    使用:

    var Video=require('react-native-video').default;
    
    <Video
     ref='videoPlayer' //设置组件类型,类似于input的type
     source={{uri:'http://xxx.com/1.mp4'}} //视频地址
     style={styles.video} //视频样式
     volume={1}
     paused={false}
     rate={this.state.rate}
     muted={this.state.muted}
     resizeMode={this.state.resizeMode}
     repeat={this.state.repeat}
    
     onLoadStart={this._onLoadStart}
     onProgress={this._onProgress}
     onEnd={this._onEnd}
    />

     

    RN不同版本有不同的坑, react-native-video也一样

    react-native-video获取视频时间总长度

    解决:react-native-video不能回调的问题

     

     

  • react-native-video获取视频时间总长度

    本人环境

    RN 0.38

    react-native-video@0.9.0

    在0.9版本中是没有获取视频总长度的方法的,需要修改RCTVideo.m文件:

    将以下代码复制粘贴覆盖到原来的就行

    https://github.com/react-native-community/react-native-video/blob/9bcf70cbb513402622bc114f93da751c28f15303/ios/RCTVideo.m

    使用方法:

    <Video
     ...
     onProgress={this._onProgress}
     ...
    />
    
    _onProgress:function (data) {
      console.log('视频时间总长度:'+data.seekableDuration+'秒');
    },

  • 解决:react-native-video不能回调的问题

    <Video
     ref='videoPlayer' //设置组件类型,类似于input的type
     source={{uri:data.content}} //视频地址
     style={styles.video} //视频样式
     volume={1}
     paused={false}
     rate={this.state.rate}
     muted={this.state.muted}
     resizeMode={this.state.resizeMode}
     repeat={this.state.repeat}
    
     onProgress={this._onProgress}
     onEnd={this._onEnd}
     />

    其他参数可以正常使用,唯独回调函数不能使用。貌似在RN 0.38版本中出现问题。

    网上解决方法很多,其中一个方法就是升级RN到0.39 react-native-video升级到最新。

    但是本人使用的RN版本不幸的是0.38的,还有另一个方法就能轻松解决:

    react-native unlink react-native-video
    react-native link react-native-video

    本人使用的版本是

    RN 0.38

    react-native-video@0.9.0

     

    如果还不能解决就参考下:

    https://github.com/react-native-community/react-native-video/tree/9bcf70cbb513402622bc114f93da751c28f15303

    http://coding.imooc.com/learn/questiondetail/4004.html

     

  • xcode linker command failed with exit code 1 (use -v to see invocation)

    141233524339555

    linker command failed with exit code 1 (use -v to see invocation)

    一般看到有类似这样的提示错误,那就是我们安装的第三方库xcode找不到了,尽然找不到干脆就删除。就可以解决:

    首先双击我们的项目:

    mypro

    然后切换到“General”,往下拉看到以下为止

    linked

    根据刚刚的错误提示,找到加载不到的那个第三方库,选中后点击“-”减号。

    之后在点击“product”–“clear”,刷下以下 即可解决。

     

    如果还不能解决,继续切换到 “Build Settings”,找到“Search Paths”查看“Header Search Paths”双击查看里面,把找不到的那第三方库删除。