feat: 添加跨平台媒体下载功能
- 新增Media抽象类定义文件下载接口 - 在工厂类中添加createMedia方法 - 实现MediaTT类支持字节跳动小程序文件下载 - 实现MediaWeApp类支持微信小程序文件下载 - 统一代码格式,修复空格和缩进问题
This commit is contained in:
@@ -165,3 +165,8 @@ export abstract class UserInfo {
|
||||
abstract login(): Promise<ILogin>;
|
||||
abstract checkSession(): Promise<ICheckSession>;
|
||||
}
|
||||
|
||||
|
||||
export abstract class Media {
|
||||
abstract downloadFile(url: string): Promise<void>;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { RewardedVideoAdTT, UserInfoTT } from "./tt";
|
||||
import { RewardedVideoAd, UserInfo } from "./core";
|
||||
import { RewardedVideoAdWeApp, UserInfoWeApp } from "./weapp";
|
||||
import { MediaTT, RewardedVideoAdTT, UserInfoTT } from "./tt";
|
||||
import { Media, RewardedVideoAd, UserInfo } from "./core";
|
||||
import { MediaWeApp, RewardedVideoAdWeApp, UserInfoWeApp } from "./weapp";
|
||||
|
||||
/**
|
||||
* 小程序平台全局对象类型声明
|
||||
@@ -58,6 +58,24 @@ export class PlatformFactory {
|
||||
}
|
||||
|
||||
|
||||
createMedia(): Media {
|
||||
switch (this.platform) {
|
||||
case 'tt':
|
||||
return new MediaTT();
|
||||
case 'weapp':
|
||||
throw new MediaWeApp();
|
||||
case 'alipay':
|
||||
throw new Error(`支付宝小程序平台暂未实现`);
|
||||
case 'swan':
|
||||
throw new Error(`百度智能小程序平台暂未实现`);
|
||||
case 'qq':
|
||||
throw new Error(`QQ 小程序平台暂未实现`);
|
||||
default:
|
||||
throw new Error(`不支持的平台类型: ${this.platform}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
createUserInfo(): UserInfo {
|
||||
switch (this.platform) {
|
||||
case 'tt':
|
||||
|
||||
@@ -6,7 +6,8 @@ import {
|
||||
RewardedVideoAdOptions,
|
||||
UserInfo,
|
||||
IUserProfile,
|
||||
ICheckSession
|
||||
ICheckSession,
|
||||
Media
|
||||
} from "./core";
|
||||
|
||||
/**
|
||||
@@ -240,3 +241,18 @@ export class UserInfoTT extends UserInfo {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export class MediaTT extends Media {
|
||||
downloadFile(url: string): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
tt.downloadFile({
|
||||
url, success: (res: any) => {
|
||||
resolve(res)
|
||||
}, fail: (res: any) => {
|
||||
reject(res)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,8 @@ import {
|
||||
RewardedVideoAdOptions,
|
||||
UserInfo,
|
||||
IUserProfile,
|
||||
ICheckSession
|
||||
ICheckSession,
|
||||
Media
|
||||
} from "./core";
|
||||
|
||||
/**
|
||||
@@ -239,3 +240,18 @@ export class UserInfoWeApp extends UserInfo {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export class MediaWeApp extends Media {
|
||||
downloadFile(url: string): Promise<void> {
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.downloadFile({
|
||||
url, success: (res: any) => {
|
||||
resolve(res)
|
||||
}, fail: (res: any) => {
|
||||
reject(res)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user