参考:
https://github.com/zengDeveloper/ReactNative_AndroidDownload
从git上下载原生包,然后进行引用
1、创建功能类DownloadApk继承自ReactContextBaseJavaModule,将方法暴露给js调用
2、创建类DownloadApkPackage 继承自ReactPackage接口,用于注册Native Modules,使得js上能够引入调用。
3、创建类DownLoadBroadcastReceiver继承BroadcastReceiver,用于接收处理下载的文件。
以上三点,只需要将原生包复制到项目的android\app\src\main\java\com下的报名下的与MainApplication.java同级的目录下面,并把三个文件的包名改成当前项目的包名即可。也就是每个文件的包名package com.XXX.XXX;(自己的包名)
4、在AndroidManifest.xml中注册广播监听配置(XXX是自己的包名)
<receiver android:name="com.XXX.xxx.DownLoadBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
</intent-filter>
</receiver>
5.在MainApplication.java文件的getPackges()中注册DownloadApkPackage
import com.XXX.xxx.DownloadApkPackage;//引入包
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNFSPackage(),
new SplashScreenReactPackage(),
new DownloadApkPackage()//注册包
);
}
6、调用
import {NativeModules} from 'react-native';
import {NativeModules} from 'react-native';
downLoad =() =>{
NativeModules.DownloadApk.downloading("http://bos.pgzs.com/sjapp91/msoft/20180507456/23/official_website6.1.0.370.apk","91zhushou.apk");
}
注意:安卓低版本的需要手动授权接受文件,在手机的设置里面去授权