§ Fox3.0 常用工具类介绍(IOS)

§ 1、ConfigPreference 配置

ConfigPreference是Fox移动平台中获取和设置配置的工具类型,我们可以通过该工具类获取client.properties中的配置。

例如: client.poperties配置如下:

#主工程
web/mainApp=fox

#回退键事件
web/backAction=javascript:fox.custom.back()

#安全配置
security/scopes=[Http]
#security/scopes=[]

#是否启用更新
version/updateEnabled=false

#版本服务器地址
version/address=http://139.199.79.118:9705

获取client.properties中的配置

//获取配置
let pref = ConfigPreference.instance
//获取主应用名称
let mainAppName:String? =  pref.get(mark: "web", key: "mainApp")

§ 2、FileAccessor 文件访问器

FileAccessor文件访问器,为每个应用的沙箱提供了操作的接口。 其使用方法如下:

步骤一:获取应用对应的FileAccessor

 //获取文件访问器
 let fileAccessor = FileAccessor.get(name: "应用名")

步骤二:操作文件系统,常用接口如下

 //获取应用的根目录
 public func getRoot()->String
    
 //获取应用下的文件路径
 public func getRootFilePath(path:String)-> String 
    
 //获取应用workspace
 public func getWorkspace()->String
    
 //获取应用workspace下的文件路径
 public func getWorkspaceFilePath(path:String) -> String
    
 //创建新的文件
 public func createNewFile(path:String) -> Bool
    
 //设置最大循环数量
 public func setMaxCircleCount(count:Int)
    
 //创建循环文件
 public func createCircleFile(parent:String, suffix:String) -> String?
    
 //拷贝
 public func copy(atPath:String, toPath:String) -> Bool
    
 //创建此抽象路径名指定的目录
 public func mkdir(path:String) -> Bool
    
 //创建此抽象路径名指定的目录,包括创建必需但不存在的父目录
 public func mkdirs(path:String) -> Bool
    
 //判断文件或文件夹是否存在
 public func exists(path:String)->Bool
    
 //判断文件是否存在
 public func isFile(path:String)->Bool
    
 //判断文件夹是否存在
 public func isDirectory(path:String)->Bool
    
 //删除文件
 public func delete(path:String) -> Bool
    
 //获取文件大小(如果目标文件不存在或为文件夹,则返回-1,否则返回大小)
 public func getSize(path:String) -> UInt64
    
 //列举指定目录下面的文件列表
 public func list(path:String) -> [String]
    
 //获取父亲目录
 public func getParentDirectory(path:String)-> String? 
    
  //写入内容
 public func setContent(path:String, data:Data) -> Bool
    
 //写入内容
 public func setContentAsString(path:String, str:String) ->  Bool
    
 //写入内容(Base64)
 public func setContentAsBase64(path:String, str:String) ->  Bool
    
 //获取内容
 public func getContent(path:String) -> Data?
    
 //以字符串形式获取内容
 public func getContentAsString(path:String) -> String?
    
 //以字符串(Base64)形式获取内容
 public func getContentAsBase64(path:String) -> String?

§ 3、HttpRequester HTTP访问器

Http访问器,为每个应用提供访问Fox Server的能力。其使用步骤如下:

§ 步骤一:获取应用对应的HttpRequester(session共享)

 let httpRequester = HttpRequester.get("应用名")

§ 步骤二:进行http通信,其接口如下

//POST请求
public func request(method:HttpMethod, string:String, header:[String:String]?, data:[String:Any]?, timeout:Int = -1,  callback:@escaping(_ data:Data?, _ response:URLResponse?, _ error:Error?)->Void) -> HttpRequester

//http请求
public func request(method:HttpMethod, url:URL, header:[String:String]?, data:Data?, timeout:Int = -1, callback:@escaping(_ data:Data?, _ response:URLResponse?, _ error:Error?)->Void) -> HttpRequester

//ping测试
public func ping(address:String, timeout:Int) -> Bool

//判断远程文件是否存在
public func isRemoteFileExists(address:String, name:String?, path:String, timeout:Int)throws -> Bool

//列举远程文件列表
public func listRemoteFile(address:String, name:String?, path:String, scale:String?, timeout:Int) throws ->[String]

//获取远程文件的大小
public func getRemoteFileSize(address:String, name:String?, path:String, timeout:Int) throws ->Int

//获取远程文件的stamp值
public func getRemoteFileStamp(address:String, name:String?, path:String, timeout:Int) throws -> String

//列举远程文件的md5 stamp
public func listRemoteFileStamps(address:String, name:String?, path:String, scale:String, timeout:Int)throws ->[String]

//下载文件(异步下载)
public func download(address:String, name:String?, path:String, savePath:String, timeout:Int,
                     thumbnail:Bool = false, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void

//下载文件
public func download(address:String, name:String?, path:String, savePath:String, timeout:Int, thumbnail:Bool = false) throws -> Bool

//上传文件(异步上传)
public func upload(address:String, name:String?, path:String, fileName:String?,
                   uploadPath:String, timeout:Int, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void
                   
//上传文件
public func upload(address:String, name:String?, path:String, fileName:String?,
                   uploadPath:String, timeout:Int) throws -> Bool

//直接下载文件(异步下载)
public func directDownload(address:String, data:[String:Any], savePath:String, timeout:Int, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void

//直接下载文件
public func directDownload(address:String, data:[String:Any], savePath:String, timeout:Int) throws -> Bool

//直接上传文件(异步上传)
public func directUpload(address:String, data:[String:Any],
                         uploadFilePath:String, timeout:Int, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void

//直接上传文件
public func directUpload(address:String, data:[String:Any], uploadFilePath:String, timeout:Int) throws -> Bool

//批量下载文件
public func batchDownload(address:String, name:String?, downloadDirectory:String,
                          downloadFilePaths:[String], saveDir:String, checkValidity:Bool, timeout:Int)throws ->Bool
                          
//服务请求
public func service(path:String, headers:[String:String]?,
                    data:[String:Any], timeout:Int, traceId:String, callback:@escaping(_ code:Int, _ data:Any?)->Void)
                    
//服务请求
public func service(path:String, headers:[String:String]?,
                    string:String, timeout:Int, traceId:String, callback:@escaping(_ code:Int, _ data:Any?)->Void)

§ 安全管理器 SecurityManager

安全管理器,提供获取加密/解密套件的接口。我们可以通过该对象提供的方法对内容进行加密或解密。

§ SecurityManager接口说明

//获取公共加密套件
public func getPublicCipher()->ICipher

//获取加密套件
public func getCipher(key:[UInt8])->ICipher

//获取加密套件
public func getCipher(keyPair:SecKeyPair)->ICipher

//获取加密套件
public func getCipher(keyStirng:String)->ICipher

§ ICipher接口说明

//加密
func encrypt(data:Data) -> Data

//解密
func decrypt(data:Data) -> Data
最后更新于: 4/15/2022, 2:41:22 PM