wangliang_wd

feat:开放意见反馈图片选择

... ... @@ -13,6 +13,7 @@ import { CommonConstants } from 'wdConstant/Index';
import { ProcessUtils } from 'wdRouter/Index';
import { TrackConstants, TrackingButton, TrackingPageBrowse } from 'wdTracking/Index';
import inputMethod from '@ohos.inputMethod';
import { photoPickerUtils } from '../utils/PhotoPickerUtils';
const TAG = 'FeedBackActivity'
... ... @@ -163,15 +164,15 @@ export struct FeedBackActivity {
GridCol({
}) {
if(1 == feedbackImageItem.itemType){
// Image($r('app.media.feekback_add'))
// .width(60)
// .height(60)
// .onClick(async (event: ClickEvent) => {
// if(await FastClickUtil.isMinDelayTime()){
// return
// }
// this.callFilePickerSelectImage();
// })
Image($r('app.media.feekback_add'))
.width(60)
.height(60)
.onClick(async (event: ClickEvent) => {
if(await FastClickUtil.isMinDelayTime()){
return
}
this.callFilePickerSelectImage();
})
}else{
Stack({alignContent: Alignment.TopEnd}) {
Image(feedbackImageItem.picPath)
... ... @@ -347,20 +348,9 @@ export struct FeedBackActivity {
async callFilePickerSelectImage(): Promise<void> { // async 用于申明一个 function 是异步的
let array: string[];
try {
// 设置photoPicker的参数
let PhotoSelectOptions = new picker.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型
let max = 3-this.pics.length+1
PhotoSelectOptions.maxSelectNumber = max; // 选择媒体文件的最大数目
let mediaFlag = false;
let photoPicker = new picker.PhotoViewPicker(); // 使用图库选择器对象前,需要先创建PhotoViewPicker实例
photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
Logger.info(TAG, 'PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); // 日志中记录成功信息
if (PhotoSelectResult !== null && PhotoSelectResult !== undefined) { // 接口采用callback异步返回形式,返回PhotoSelectResult对象,故进行下一步操作前要先判断是否已经成功返回PhotoSelectResult对象了
// PhotoSelectResult为返回的结果集。
// 其中包含Array<string>类型的photoUris,为返回图库选择后的媒体文件的uri数组;还包含boolean类型的isOriginalPhoto,指示返回图库选择后的媒体文件是否为原图。
// 声明变量array,其取值为PhotoSelectResult中的数组。
photoPickerUtils.getPhotoPicker(3).then(PhotoSelectResult => {
if (PhotoSelectResult) {
array = PhotoSelectResult['photoUris'];
let beforeLen = this.pics.length + array.length;
let totalLen = this.pics.length+array.length;
... ... @@ -396,9 +386,6 @@ export struct FeedBackActivity {
this.getFilenameByUriForMedia(array);
}
})
.catch((err: BusinessError) => {
Logger.error(TAG, 'PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
});
} catch (err) {
Logger.error(TAG, 'PhotoViewPicker failed with err: ' + err);
}
... ...
... ... @@ -98,9 +98,9 @@ struct EditUserInfoPage {
pickerSelect(index:number){
if (index === 0) {
photoPickerUtils.getPhotoPicker().then(value => {
if (value.length > 0) {
this.headerImg = value
photoPickerUtils.getPhotoPicker(1).then(value => {
if (value) {
this.headerImg = value['photoUris'][0]
}
})
}else {
... ...
... ... @@ -11,20 +11,20 @@ const PERMISSIONS: Array<Permissions> = [
export class PhotoPickerUtils {
async getPhotoPicker(){
async getPhotoPicker(maxSelectNumber:number){
this.pickerPermissions()
let PhotoSelectOptions = new picker.PhotoSelectOptions();
PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型
PhotoSelectOptions.maxSelectNumber = 1; // 选择媒体文件的最大数目
PhotoSelectOptions.maxSelectNumber = maxSelectNumber; // 选择媒体文件的最大数目
let photoPicker = new picker.PhotoViewPicker(); // 使用图库选择器对象前,需要先创建PhotoViewPicker实例
return new Promise<string>((success, fail) => {
return new Promise<picker.PhotoSelectResult>((success, fail) => {
photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult) => {
if (PhotoSelectResult !== null && PhotoSelectResult !==
undefined) {
// 接口采用callback异步返回形式,返回PhotoSelectResult对象,故进行下一步操作前要先判断是否已经成功返回PhotoSelectResult对象了
success(PhotoSelectResult['photoUris'][0])
success(PhotoSelectResult)
}
})
})
... ...