MartinGao / react-native-apk-installer

An APK Installer Library for react-native.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Native APK Installer

Install an android APK from your react-native project. This project is based on react-native-android-library-boilerplate and react-native-install-apk

Installing ApkInstaller

  1. Add react-native-apk-installer to your project
  • Install directly from npm: npm install --save react-native-apk-installer.
  • Or do npm install --save git+https://github.com/null--/react-native-apk-installer.git in your main project.
  1. Link the library:
  • Add the following to android/settings.gradle:

      include ':react-native-apk-installer'
      project(':react-native-apk-installer').projectDir = new File(settingsDir, '../node_modules/react-native-apk-installer/android')
    
  • Add the following to android/app/build.gradle:

      ...
    
      dependencies {
          ...
          compile project(':react-native-apk-installer')
      }
  • Add the following to android/app/src/main/java/**/MainApplication.java:

      ...
      import com.cnull.apkinstaller.ApkInstallerPackage;  // add this for react-native-apk-installer
    
      public class MainApplication extends Application implements ReactApplication {
    
          @Override
          protected List<ReactPackage> getPackages() {
              return Arrays.<ReactPackage>asList(
                  new MainReactPackage(),
                  ...
                  new ApkInstallerPackage()     // add this for react-native-apk-installer
              );
          }
      }
  1. Simply import ApkInstaller from 'react-native-apk-installer' (You might also need to install react-native-fs package).
  import RNFS from 'react-native-fs';
  import ApkInstaller from 'react-native-apk-installer'

   try {
       var filePath = RNFS.CachesDirectoryPath + '/com.example.app.apk';
       var download = RNFS.downloadFile({
         fromUrl: 'http://example.com/com.example.app.apk',
         toFile: filePath,
         progress: res => {
             console.log((res.bytesWritten / res.contentLength).toFixed(2));
         },
         progressDivider: 1
       });

       download.promise.then(result => {
         if(result.statusCode == 200) {
           console.log(filePath);
           ApkInstaller.install(filePath);
         }
       });
   }
   catch(error) {
       console.warn(error);
   }

About

An APK Installer Library for react-native.

License:GNU General Public License v3.0


Languages

Language:Java 98.3%Language:JavaScript 1.7%