react-native更新App(安卓+ios)

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

安卓:

1、使用插件 rn-fetch-blob //或者 react-native-fetch-blob

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

2、安卓配置
在android/app/src/main/AndroidManifest.xml添加权限

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />                                               <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />                                              <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /><uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

3、ios配置

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

使用

1、安卓使用

/***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);}};
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','https://raw.githubusercontent.com/feicien/android-auto-update/develop/extras/android-auto-update-v1.2.apk' //apk下载地址).then(res => {//下载成功后自动打开安装已下载apk文件android.actionViewIntent(res.path(),'application/vnd.android.package-archive');});
}

2、IOS使用
将ios目录下ios_upgrade文件夹拷贝到项目目录下

import { NativeModules } from "react-native";NativeModules.upgrade.upgrade("123456", msg => {if (msg === "YES") {// 跳转到APP StroeNativeModules.upgrade.openAPPStore("123456")  //数字为对应的AppStore引用的ID} else {// TODO: 无更新callback && callback();}
}

ios不使用插件更新使用如下:

Linking.openURL("APPstore里面appId").catch(err => console.error('An error occurred', err))

react-native更新App相关推荐

  1. 使用 Agora SDK 开发 React Native 视频通话 App

    在 React Native 的应用中,从头开始添加视频通话功能是很复杂的.要保证低延迟.负载平衡,还要注意管理用户事件状态,非常繁琐.除此之外,还必须保证跨平台的兼容性. 当然有个简单的方法可以做到 ...

  2. [React Native]使用App Center CLI发布CodePush更新--iOS简易版

    面向 用RN开发iOS的小伙伴,并且想使用RN的热更新功能,又不想在一大堆文档里翻来覆去的,可以看看这个简易版.觉得不错的话可以点个赞或关注.附上详细版. 主要步骤 安装App Center CLI: ...

  3. react native 开发APP(六)网络请求,列表的使用

    官网 https://reactnative.cn/ 项目下载地址:https://github.com/hebiao6446/DemoProject 陆续更新中... 在移动端开发的时候,我们基本上 ...

  4. React Native 开发APP(一)

    一,首先检查环境,ReactNative(一下简称:RN)开发,必要环境. 等等,在这里我必须强调,RN开发有两种模式,一是原生Android/IOS混合起来的开发(这种开发目前在国内,从事的比较多) ...

  5. android home键后计时拉起app_使用React Native完成App软件

    搭建开发环境 安装react-native-cli:npm i -g react-native-cli Android SDK 安装Android SDK并启动进行配置: 配置环境变量 export ...

  6. react native改变app的图标和名称

    beauty\android\app\src\main\res 转载于:https://www.cnblogs.com/busicu/p/5711501.html

  7. react native生成APP报错:You have not accepted the license agreements of the following SDK components:

    今晚因为这个问题,加班到晚上11点都没搞出来.实在是气愤,幸好回来查找资料,终于找到了罪魁祸首. 一.报错信息 * What went wrong: A problem occurred config ...

  8. React Native天气预报APP

    expo扫码运行 或者复制下面地址. exp://exp.host/@lxyoucan/weather-ts 效果展示 同时显示多个城市的天气情况,并按温度进行排序 点击任何一个城市,显示天气详情信息 ...

  9. fragment中文网_更新 · React Native 中文网

    时刻将 React Native 更新到最新的版本,可以获得更多 API.视图.开发者工具以及其他一些好东西(译注:官方开发任务繁重,人手紧缺,几乎不会对旧版本提供维护支持,所以即便更新可能带来一些兼 ...

  10. React Native —— App

    使用 React Native 作为 app 框架,Redux 作为数据层,因此我们需要选用一些支持性的技术和工具: 开源的 Parse Server 做数据存储 - 运行在 Node.js 上. F ...

最新文章

  1. 售价1万7的华为Mate X很贵吗?
  2. 构建dubbo分布式平台-maven构建ant-framework框架的pom.xml文件配置
  3. swift_026(Swift 的类型转换)
  4. 设计模式--1(设计模式基础,设计模式基本原则,设计模式分类)
  5. 《转》Ubuntu 12.04常用的快捷键
  6. Hadoop HDFS概念学习系列之HDFS升级和回滚机制(十二)
  7. flush privileges
  8. Oracle查询表|注释|字段|字段注释
  9. diy 扫地机器人 滚刷_扫地机器人无法完成的使命,莱克吉米W7智能洗地机帮你完成...
  10. 菜鸟javascript整理2
  11. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(1月16日-2月5日)
  12. 第四周项目1-三角形类的构造函数
  13. python成绩统计及格学平成_强化学习训练Chrome小恐龙Dino:最高超过4000分
  14. 用C写邮箱密码暴力破解器
  15. 吴思进——复杂美创始人首席执行官
  16. 程序员《周易》入门一
  17. Webmin未经身份验证的远程代码执行-墨者学院
  18. 2021年上海第一批高新技术企业上海熙有网络科技集团榜上有名
  19. 吴恩达机器学习课后作业ex1(python实现)
  20. 黑苹果NVIDIA显卡驱动程序【 WebDriver-378.10.10.10.20.108+支持macOS 10.13.1 High Sierra (17B1002)版本】

热门文章

  1. HTTPS 证书 概述及相关研究
  2. YOLO系列损失函数详解
  3. HBuilder向下复制快捷键失效问题
  4. python爬虫lxml解析爬取诗词名句
  5. [经验分享] MXCHIP+Wifi、ZigBee、蓝牙的区别
  6. 2022淘宝双十一定金付了可以退吗?双11定金怎么才能退?
  7. 新生儿黄疸怎么做消退的更快一点?
  8. fifa足球经理10java_《FIFA足球经理2010》经理模式详解
  9. 进程和线程的区别(仅为记录个人成长)
  10. 深度学习论文: U-Net and its variants for Medical Image Segmentation : A short review