美文网首页reactnative
ReactNative App更新下载(Android+iOS)

ReactNative App更新下载(Android+iOS)

作者: 会飞的鱼儿_0012 | 来源:发表于2019-12-19 11:02 被阅读0次

APP涉及到版本更新(非热更新),版本检测下载App,Android和iOS实现方式不同

1.Android直接和服务器上版本号作对比下载APK进行安装
2.iOS由于需要到AppStore进行下载应用,所以应用需要和AppStore上应用做版本对比后跳转到AppStore进行App更新


--Android

1.使用插件 rn-fetch-blob

 npm install --save rn-fetch-blob //安装插件

RN0.60版本以下需要link

 react-native link rn-fetch-blob  //0.60+自动link

RN0.60+

cd ios
pod install   //ios使用pod安装

2.功能实现

  • Android需要更改原生代码获取权限按照rn-fetch-blob文档配置
    Android6.0+需要手动获取权限

代码如下:

/***
  Android6.0+获取文件权限
*/
crequestMultiplePermission = async () => {
    try {
      const permissions = [
        PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
      ];
      const granteds = await PermissionsAndroid.requestMultiple(permissions);
      if (granteds['android.permission.WRITE_EXTERNAL_STORAGE'] === 'granted') {
        this.storage = true;
      } else {
        this.storage = false;
      }
      if (this.storage) return;
    } catch (err) {
      console.log(err);
    }
  };

/**
检测更新下载APP
*/

import RNFetchBlob from 'rn-fetch-blob';

Update = () => {
  const android = RNFetchBlob.android;

  //配置手机系统通知栏下载文件通知,下载成功后点击通知可运行apk文件
  RNFetchBlob.config({
    addAndroidDownloads: {
      useDownloadManager: true,
      title: 'update app',
      description: 'An APK that will be installed',
      mime: 'application/vnd.android.package-archive',
      path: `${RNFetchBlob.fs.dirs.DownloadDir}/update.apk`,
      mediaScannable: true,
      notification: true
    }
  }).fetch(
    'GET',
    'http://gdown.baidu.com/data/wisegame/9fdb4b60017e5bf9/baidushoujizhushou_16798097.apk' //apk下载地址
  ).then(res => {
    //下载成功后自动打开安装已下载apk文件
    android.actionViewIntent(
      res.path(),
      'application/vnd.android.package-archive'
    );
  });
}

--iOS

  • 将ios目录下ios_upgrade文件夹拷贝到项目目录下
    代码如下:
import { NativeModules } from "react-native";
 NativeModules.upgrade.upgrade("123456", msg => {
    if (msg === "YES") {
        // 跳转到APP Stroe
        NativeModules.upgrade.openAPPStore("123456")  //数字为对应的AppStore引用的ID
      } else {
       // TODO: 无更新
        callback && callback();
      }
}

项目地址:github

相关文章

  • ReactNative App更新下载(Android+iOS)

    APP涉及到版本更新(非热更新),版本检测下载App,Android和iOS实现方式不同 1.Android直接和...

  • ReactNative热更新思路

    一、简介 热更新技术是ReactNative框架的一大特色。简单的说,热更新技术就是在无需用户重新下载APP SD...

  • 设置webstorm智能提示

    github有一个开源的插件:ReactNative-LiveTemplate,先下载或clone到本地。 更新日...

  • ReactNative 增量热更新思路

    增量热更新 ReactNative 增量更新 ReactNative 增量更新的内容包含 JS 和图片,在每次应用...

  • 3个步骤搞定手机盘点

    一、下载APP 苹果:APPstore 搜索【高效盘点】下载 下载后安装,安装后提示更新时,点击【立即更新】 更新...

  • code-push 更新失败回滚处理

    ReactNative code-push 热更新失败回滚处理 ReactNative code-push 热更新...

  • ReactNative项目实战-仿知乎日报

    高仿知乎日报App,使用ReactNative技术,Js代码达到90%以上,采用Redux架构,持续优化更新中。。...

  • App 版本更新

    App更新流程:检查更新==>提示更新==>下载apk==>安装新版App 检查更新:根据不同的业务和后台逻辑实现...

  • 师董会使用攻略

    1. 如何下载App 注:如遇App下载/更新不成功, 请先删除原有师董会App, 重新按上述方式下载安装App....

  • 无法下载app

    最近为了更新Xcode,更新了系统OS X10.14,之后发现app store更新,下载不了app,根据网上资料...

网友评论

    本文标题:ReactNative App更新下载(Android+iOS)

    本文链接:https://www.haomeiwen.com/subject/xkzpnctx.html