首页 > 其他分享 >uniapp 解决andorid10以上App文件存储到手机盘目录

uniapp 解决andorid10以上App文件存储到手机盘目录

时间:2024-08-07 17:31:17浏览次数:12  
标签:uniapp const file App File return android root andorid10

file.js 方法:

/*
 * @Descripttion: 
 * @version: V1.0.0
 * @Author: BaiYayong
 * @Date: 2024-08-06 10:25:48
 * @LastEditTime: 2024-08-07 15:50:33
 */
/* 
  使用该类应开启以下权限(读取和写入)
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 */
/**
 * 获取手机内置存储的根路径
 * @return {String}
 */
const root = function () {
  const environment = plus.android.importClass("android.os.Environment");
  return environment.getExternalStorageDirectory();
}
/**
 * 创建文件夹
 * @return {boolean} flase=失败(已存在、操作失败),true=成功
 */
const mkdirs = function (path = '') {
  plus.android.requestPermissions([//必须用户授权,在mainifest中配置无效
    'android.permission.WRITE_EXTERNAL_STORAGE',
    'android.permission.READ_EXTERNAL_STORAGE',
    'android.permission.INTERNET',
    'android.permission.ACCESS_WIFI_STATE'
  ], error => {
    const File = plus.android.importClass('java.io.File');
    let file = new File(path);
    if (!file.exists()) {
      return file.mkdirs();
    }
    return false;
  }, success => {
    uni.showToast({
      title: '无法获取权限,文件下载将出错!',
      icon: 'none',
    })
  })
}

/**
 * 写入文件内容
 * @param {String} path 文件路径
 * @param {String} content 内容
 * @param {boolean} append 内容写入类型,false=不追加(覆盖原有内容),true=追加(从内容尾部写入)
 * @param {String} charset 编码
 * @return {boolean} true=成功,false=失败
 */
const writeTxt = function (path = '', content = '', append = false, charset = 'utf-8') {
  const File = plus.android.importClass('java.io.File');
  const FileOutputStream = plus.android.importClass('java.io.FileOutputStream');
  const OutputStreamWriter = plus.android.importClass('java.io.OutputStreamWriter');

  let outputStreamWriter;
  let file = new File(path);
  try {
    //不存在则创建新的文件
    if (!file.exists()) {
      file.createNewFile();
    }
    outputStreamWriter = new OutputStreamWriter(new FileOutputStream(path, append), charset);
    outputStreamWriter.write(content);
    outputStreamWriter.close();
  } catch (e) {
    if (null != outputStreamWriter) {
      outputStreamWriter.close();
    }
    return false;
  }
  return true;
}
export default {
  root,
  mkdirs,
  writeTxt,
}

  页面中引入file.js     import File from "file.js"

          1.创建文件夹

               const fileDir = '/xxx/' //创建的文件夹名

               const root = File.root() //系统根目录

              const filePath = root + fileDir               File.mkdirs(filePath) //创建文件夹           2.创建文件写入内容             const fileName =xxx//导出文件名             const fileDir = '/xxx/' //创建的文件夹名             const root = File.root() //系统根目录             const filePath = root + fileDir             File.writeTxt(filePath + fileName, '系统写入的文件内容')  

 

标签:uniapp,const,file,App,File,return,android,root,andorid10
From: https://www.cnblogs.com/baibyy/p/18347482

相关文章

  • Apple Vision Pro 游戏开发:挑战与反思
     随着AppleVisionPro的推出,许多游戏开发者开始尝试在这个全新的平台上构建沉浸式的虚拟现实体验。然而,开发者们很快发现,在这个新兴领域中面临着不少挑战,包括支付延迟、技术支持不足、设备性能限制等问题。本文将探讨这些挑战,并提出一些开发者需要注意的关键点。支付延迟......
  • uni-app步骤条steps源码解析(十八)
    【背景】在显示中许多任务都不是一步执行完成的,需要分好多步进行;例如:网上购买一个商品需要先在网上下单-->当地物流人员取件-->中间物流转送--->目的地物流接收--->配送到买家手中;因此监控每个步骤的状态显的尤为重要。本期将为大家介绍步骤条控件steps。先看效果图:   ......
  • iOS app启动优化
    app的启动阶段可分为main函数调用前和main函数调用后,分别都做了些什么呢1、pre-main阶段   1)加载应用的可执行文件(自身App的所有.o文件的集合)  2)加载动态链接器dyld(dynamicloader,是一个专门用来加载动态链接库的库)  3)dyld递归加载应用所有依赖的动态链接库dyli......
  • fiddler - 对模拟器app抓包配置
    1.fiddler部分tools》options中, 这几个配置勾选跟我的一致,端口使用8888 然后导出证书 会导出到桌面 然后pc授信证书 然后重启fiddler 2.模拟器部分将证书拉入模拟器,然后点击证书安装,输入的名称可以随便写然后打开wlan,对wifi的修改代理为手动【模拟器有些......
  • uniapp Vue3版本使用jweixin-module报错
    把uniapp从Vue2版本选择到Vue3版本编译开发  改用到Vue3使用:varjweixin=require('jweixin-module')会编译报错:requireisnotdefined,没有require模块.改成import的话,由于jweixin-module不支持export写法,所以引入也不能成功1import *asjweixinfr......
  • @MapperScan的作用,以及与@Mapper的区别
    @MapperScan的作用@MapperScan的作用:这个注解告诉MyBatis-Spring-Boot-Starter自动扫描指定包(及其子包)下的所有接口。对于扫描到的每个接口,MyBatis会自动创建一个MapperFactoryBean。这个MapperFactoryBean会被注册到Spring容器中。自动IoC管理:通过上述过......
  • 基于SpringBoot+Vue+uniapp的电动车租赁网站(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的园区停车管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的人力资源管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的应急资源管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......