參考:
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");
}
注意:安卓低版本的需要手動授權接受文件,在手機的設置裏面去授權