uni.downloadFile(OBJECT)
下载文件资源保存到一个临时路径
怎么保存到手机自定义目录?
wx.env.USER_DATA_PATH在手机路径:“/Android/data/com.tencent.mm/MicroMsg/wxanewfiles/目录”
uni.saveFile保存到手机路径:“/Android/data/io.cloud.HBuilder/apps/HBuilder/doc/uniapp_save”
wx.downloadFile({
url: 'https://www.example.com/file/test', //仅为示例,并非真实的资源
success: (res) => {
var savePath = wx.env.USER_DATA_PATH + '/savePath'
var tempFilePath = res.tempFilePath;
wx.saveFile({
tempFilePath:tempFilePath,
filePath:savePath,
success(res){
console.log('下载成功--'+ res.savedFilePath);
}
})
}
});
如果是图片的话saveImageToPhotosAlbum保存到系统相册,视频用saveVideoToPhotosAlbum
H5没有API可触发保存到相册行为,下载图片时浏览器会询问图片存放地址。
uni.saveImageToPhotosAlbum({
filePath: res.tempFilePaths[0],
success: function () {
console.log('保存成功!');
}
});
setStorage 与setStorageSync
setStorage是异步的,setStorageSync是同步的。如果后面的操作必须依赖于修改成功后的storage数据,使用setStorageSync;后面的操作并不需要用到修改的storage数据则不需要同步,使用setStorage。因为操作内存是需要时间的,往往没有代码走的快。
uni.chooseImage(OBJECT)
从本地相册选择图片或使用相机拍照。
- count 值在 H5 平台的表现,基于浏览器本身的规范。目前测试的结果来看,只能限制单选/多选,并不能限制数量。并且,在实际的手机浏览器很少有能够支持多选的。
- sourceType 值在 H5 平台根据浏览器的不同而表现不同,一般不可限制仅使用相册,部分浏览器也无法限制是否使用相机。
uni.chooseFile(OBJECT)
从本地选择文件。H5(HBuilder X2.9.9+)其他不支持
wx.chooseMessageFile(OBJECT)
从微信聊天会话中选择文件。
uniapp可以使用webview打开一个网页,在html页面实现选择文件和上传
<web-view :src="html网页地址" @message="handleMessage"></web-view>
handleMessage(evt) {
var data = evt.detail.data;
console.log('接收到的消息:' + JSON.stringify(data));
}
//html页面上传成功后
wx.miniProgram.navigateBack({delta: 1})
wx.miniProgram.postMessage({
data: url
});
wx.miniProgram.getEnv(function(res) {
console.log(res.miniprogram)
})
uni.chooseMedia(OBJECT)
拍摄或从手机相册中选择图片或视频。微信小程序(2.10.0+)其他不支持
uni.openDocument(OBJECT)
打开视频编辑器。微信小程序(2.12.0+)其他不支持
filePath--视频源的路径,只支持本地路径
uni.scanCode(OBJECT)
调起客户端扫码界面,扫码成功后返回对应的结果。H5不可用,如果微信内嵌浏览器运行H5时,可通过js sdk实现扫码。
JS-SDK扫码说明文档 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
uni.setClipboardData(OBJECT)
设置系统剪贴板的内容。H5不可用,可在DCloud插件市场搜索剪贴板。
uni.setNavigationBarTitle(OBJECT)/setNavigationBarColor
动态设置当前页面的标题/设置页面导航条颜色
如果需要在页面进入时设置标题,可以在
onReady
内执行,以避免被框架内的修改所覆盖。如果必须在onShow
内执行需要延迟一小段时间
页面通讯
- uni.$emit、 uni.$on 、 uni.$once 、uni.$off 触发的事件都是 App 全局级别的,跨任意组件,页面,nvue,vue 等。
- 使用时,注意及时销毁事件监听,比如,页面 onLoad 里边 uni.$on 注册监听,onUnload 里边 uni.$off 移除,或者一次性的事件,直接使用 uni.$once 监听
uni.login(OBJECT)
登录。H5不可用,如果微信内嵌浏览器运行H5时,可通过js sdk实现微信登录。
网页授权登录https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
uni.share(OBJECT)
分享。uni-app的App引擎已经封装了微信、QQ、微博的分享SDK,开发者可以直接调用相关功能