@docoi/mys-sdk 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +212 -0
- package/dist/api/basic.d.ts +208 -111
- package/dist/api/biz.d.ts +153 -30
- package/dist/api/router/index.d.ts +68 -0
- package/dist/api/router/launch.d.ts +3 -0
- package/dist/api/router/legacy.d.ts +22 -0
- package/dist/api/router/routes.d.ts +732 -0
- package/dist/bridge.d.ts +48 -9
- package/dist/constants/code.d.ts +10 -2
- package/dist/index.d.ts +21 -42
- package/dist/index.mjs +1240 -312
- package/dist/transport/legacy.d.ts +27 -0
- package/dist/types/base.d.ts +77 -5
- package/dist/types/enums.d.ts +36 -23
- package/dist/types/index.d.ts +2 -3
- package/dist/types/params.d.ts +131 -97
- package/dist/types/results.d.ts +200 -55
- package/dist/types/router.d.ts +231 -0
- package/dist/utils/app.d.ts +30 -0
- package/dist/utils/data.d.ts +39 -0
- package/package.json +9 -9
- package/LICENSE +0 -21
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Transport } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* 旧通道调用失败。
|
|
4
|
+
*
|
|
5
|
+
* kind 表达失败发生在哪一层,bridge.ts 据此映射 errCode:
|
|
6
|
+
* - `communication`:没形成完整的「发出 → 原生收到 → 回包」回合(找不到管道、发送抛错)
|
|
7
|
+
* - `native`:回合完成了,原生明确拒绝(旧原生只有「方法不存在」这一种)
|
|
8
|
+
*/
|
|
9
|
+
export declare class LegacyChannelError extends Error {
|
|
10
|
+
readonly kind: 'communication' | 'native';
|
|
11
|
+
constructor(kind: 'communication' | 'native', message: string);
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* import 时为 window.JSBridgeEvent 放一个空函数。
|
|
15
|
+
*
|
|
16
|
+
* 旧版 Native 在新版 App 上仍会广播页面生命周期事件(h5PageShow 等),与 H5 是否订阅无关;
|
|
17
|
+
* 三个全局入口是懒安装的,未装时该函数不存在,Native 调用会抛 TypeError(iOS)/ Script error(Android)。
|
|
18
|
+
* 此时也没有旧通道监听,先放一个静默空函数,首次真正使用旧通道时 ensureInstalled 会换成真实处理函数。
|
|
19
|
+
*
|
|
20
|
+
* 不能用 isInApp() 判断:它会缓存 App 信息,而 Demo 要在 import 之后、首次调用之前写入模拟版本。
|
|
21
|
+
*/
|
|
22
|
+
export declare function installEventStub(): void;
|
|
23
|
+
/**
|
|
24
|
+
* 旧通道传输。状态在模块级共享,走哪个通道由 App 版本决定,一个页面只会用到其中一个。
|
|
25
|
+
* 每次调用前都会确保全局入口已安装,因此首次调用起 Native 就能回调 H5。
|
|
26
|
+
*/
|
|
27
|
+
export declare const legacyTransport: Transport;
|
package/dist/types/base.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* mys-sdk 基础协议类型
|
|
3
3
|
*
|
|
4
|
-
* 定义 Native 与 SDK
|
|
4
|
+
* 定义 Native 与 SDK 对外暴露的统一数据格式,以及 Bridge 层的调用与监听选项。
|
|
5
5
|
*
|
|
6
6
|
* @module types/base
|
|
7
7
|
*/
|
|
@@ -29,12 +29,10 @@ export interface NativeResponse<TResult = void> {
|
|
|
29
29
|
export interface ApiError {
|
|
30
30
|
/** 错误描述,格式:`fnName:fail ...` */
|
|
31
31
|
readonly errMsg: string;
|
|
32
|
-
/** 错误码,-1
|
|
32
|
+
/** 错误码,-1 表示未知异常 */
|
|
33
33
|
readonly errCode: number;
|
|
34
|
-
/** Native
|
|
34
|
+
/** 排查用的原始数据:Native 回包,或 SDK 判定失败时的依据;没有额外依据时不存在 */
|
|
35
35
|
readonly errDetail?: unknown;
|
|
36
|
-
/** Native 原始响应,便于排查联调问题 */
|
|
37
|
-
readonly raw?: NativeResponse<unknown>;
|
|
38
36
|
}
|
|
39
37
|
/**
|
|
40
38
|
* API 回调接口。
|
|
@@ -52,3 +50,77 @@ export interface Callbacks<TResult = void> {
|
|
|
52
50
|
/** 完成回调,成功时返回 NativeResponse,失败时返回 ApiError */
|
|
53
51
|
complete?: (res?: NativeResponse<TResult> | ApiError) => void;
|
|
54
52
|
}
|
|
53
|
+
/** 通信通道:mysJSBridge 为新通道,jsbridge 为旧通道,local 为不经过 Native 的本地动作(如 location.href、postMessage) */
|
|
54
|
+
export type Channel = 'mysJSBridge' | 'jsbridge' | 'local';
|
|
55
|
+
/** 通道单次调用的选项 */
|
|
56
|
+
export interface ChannelCallOptions {
|
|
57
|
+
/** `serial` 时同一方法名的调用串行,其余并行 */
|
|
58
|
+
queue?: 'parallel' | 'serial';
|
|
59
|
+
/** 超时毫秒数,`false` 表示不超时;旧通道不实现超时,会忽略该字段 */
|
|
60
|
+
timeout?: number | false;
|
|
61
|
+
}
|
|
62
|
+
/** 通道调试日志选项 */
|
|
63
|
+
export interface ChannelDebugOptions {
|
|
64
|
+
/** 最低日志级别:debug / info / warn / error */
|
|
65
|
+
logLevel?: string;
|
|
66
|
+
/** 是否输出到控制台 */
|
|
67
|
+
useConsole?: boolean;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 通信通道:mys-sdk 对底层传输的全部依赖。
|
|
71
|
+
*
|
|
72
|
+
* 新通道由 `@docoi/jsbridge-sdk` 提供;旧通道 jsbridge 由 `transport/legacy.ts` 自己实现,
|
|
73
|
+
* 因为旧 App 的通道命名与新通道不同,且旧通道会随 App 最低版本上升整体删除。
|
|
74
|
+
*/
|
|
75
|
+
export interface Transport {
|
|
76
|
+
/** 发起一次调用,resolve 原生原始回包(不拆 `{ code, msg, result }` 信封);reject 表示这次调用失败 */
|
|
77
|
+
callAsync(method: string, data: Record<string, unknown>, options?: ChannelCallOptions): Promise<unknown>;
|
|
78
|
+
/** 监听原生事件 */
|
|
79
|
+
on(event: string, handler: (payload: unknown) => void): void;
|
|
80
|
+
/** 取消监听 */
|
|
81
|
+
off(event: string, handler: (payload: unknown) => void): void;
|
|
82
|
+
/** 注册供原生调用的方法 */
|
|
83
|
+
register(name: string, handler: (data: unknown) => unknown): void;
|
|
84
|
+
/** 注销注册的方法 */
|
|
85
|
+
unregister(name: string): void;
|
|
86
|
+
/** 开关调试日志 */
|
|
87
|
+
setDebug(enabled: boolean, options?: ChannelDebugOptions): void;
|
|
88
|
+
}
|
|
89
|
+
/** invoke 的扩展选项,在单次调用的通道选项之上增加通道选择与数据转换能力 */
|
|
90
|
+
export interface InvokeOptions extends ChannelCallOptions {
|
|
91
|
+
/** 支持新通道的最低 App 版本,低于该版本走旧通道 jsbridge;不传则始终走新通道 mysJSBridge */
|
|
92
|
+
since?: string;
|
|
93
|
+
/** 始终走旧通道 jsbridge,不看 App 版本:该能力只有旧通道实现,新通道没有对应方法。优先级高于 since */
|
|
94
|
+
legacyOnly?: boolean;
|
|
95
|
+
/** 转换新通道返回的业务数据(NativeResponse.result),在 success / complete / resolve 之前执行,仅在走新通道且响应成功时生效;抛错代表这次调用失败,走 fail → complete → reject */
|
|
96
|
+
transformResult?: (result: unknown) => unknown;
|
|
97
|
+
/** 旧通道 jsbridge 的差异处理,仅在走旧通道时生效,各项均可选;两个转换函数抛错都代表这次调用失败 */
|
|
98
|
+
jsbridge?: {
|
|
99
|
+
/** 转换发给旧通道的参数 */
|
|
100
|
+
data?: (data: Record<string, unknown>) => Record<string, unknown>;
|
|
101
|
+
/** 转换旧通道返回的原始数据,转换结果会作为 NativeResponse.result;抛 ApiError 表示业务失败,会原样透传 */
|
|
102
|
+
result?: (raw: unknown) => unknown;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** 一次调用的路由结果,供调试使用 */
|
|
106
|
+
export interface RouteInfo {
|
|
107
|
+
fnName: string;
|
|
108
|
+
channel: Channel;
|
|
109
|
+
appVersion?: string;
|
|
110
|
+
since?: string;
|
|
111
|
+
/** 实际发给 Native 的方法名 */
|
|
112
|
+
method: string;
|
|
113
|
+
/** 实际发给 Native 的参数 */
|
|
114
|
+
data: Record<string, unknown>;
|
|
115
|
+
}
|
|
116
|
+
/** Native 调 H5 注册的方法的处理函数 */
|
|
117
|
+
export type NativeHandler<TData = unknown, TResult = unknown> = (data: TData) => TResult | Promise<TResult>;
|
|
118
|
+
/** listen 的选项 */
|
|
119
|
+
export interface ListenOptions<T = unknown> {
|
|
120
|
+
/** 支持新通道的最低 App 版本,低于该版本走旧通道 jsbridge;不传则始终走新通道 mysJSBridge */
|
|
121
|
+
since?: string;
|
|
122
|
+
/** 只监听一次,触发后自动取消 */
|
|
123
|
+
once?: boolean;
|
|
124
|
+
/** 转换事件 payload,在 callback 之前执行 */
|
|
125
|
+
transform?: (payload: unknown) => T;
|
|
126
|
+
}
|
package/dist/types/enums.d.ts
CHANGED
|
@@ -13,39 +13,52 @@ export declare enum ToastDuration {
|
|
|
13
13
|
/** 长时显示 */
|
|
14
14
|
Long = 1
|
|
15
15
|
}
|
|
16
|
-
/** 媒体预览类型 */
|
|
17
|
-
export type PreviewMediaType = "image" | "video";
|
|
18
16
|
/** 媒体文件类型 */
|
|
19
17
|
export type MediaFileType = "image" | "video";
|
|
20
|
-
/**
|
|
21
|
-
export type SettingType = "
|
|
18
|
+
/** 系统设置页类型,取值与 PermissionType 一致,checkPermission 查出未授权后用同一个值打开对应设置页 */
|
|
19
|
+
export type SettingType = "camera" | "microphone" | "location" | "storage" | "notification";
|
|
22
20
|
/** 权限类型 */
|
|
23
21
|
export type PermissionType = "camera" | "microphone" | "location" | "storage" | "notification";
|
|
24
22
|
/** 权限状态 */
|
|
25
23
|
export type PermissionStatus = "granted" | "denied" | "permanentlyDenied";
|
|
26
24
|
/** 摄像头方向 */
|
|
27
25
|
export type CameraDirection = "back" | "front";
|
|
28
|
-
/** Webview
|
|
29
|
-
export type WebviewType = "
|
|
30
|
-
/**
|
|
31
|
-
export type
|
|
32
|
-
/**
|
|
33
|
-
export type
|
|
26
|
+
/** Webview 容器类型(daoke type 5 的 h5Type) */
|
|
27
|
+
export type WebviewType = "normal" | "mini" | "immersive";
|
|
28
|
+
/** Webview 扩展类型 */
|
|
29
|
+
export type WebviewExtType = "dynamic" | "transparent";
|
|
30
|
+
/** App 底部 tab */
|
|
31
|
+
export type TabBarType = "home" | "discover" | "message" | "mine";
|
|
32
|
+
/** 发现页二级 tab */
|
|
33
|
+
export type DiscoverSubTab = "friends" | "square" | "comic";
|
|
34
|
+
/** 新版首页顶部 tab */
|
|
35
|
+
export type HomeTab = "official" | "community";
|
|
36
|
+
/** 圈子主页关系操作 */
|
|
37
|
+
export type CircleRelationType = "apprentice" | "graduate" | "intimacyShare" | "takeApprentice";
|
|
38
|
+
/** 活动中心 tab */
|
|
39
|
+
export type ActivityCenterTab = "welfare" | "activity";
|
|
40
|
+
/** 玩家举报的对象类型 */
|
|
41
|
+
export type ReportObjectType = "user" | "circle" | "comment" | "trends" | "message";
|
|
34
42
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
* - 3: QQ
|
|
43
|
+
* navigateTo 可跳转的原生页面
|
|
44
|
+
*
|
|
45
|
+
* 每个值对应的 params 见 NavigatePageParamsMap
|
|
39
46
|
*/
|
|
40
|
-
export type
|
|
47
|
+
export type NavigatePage = "dynamicDetailPage" | "topicPage" | "likeListPage" | "circleHomePage" | "joinCirclePage" | "homePage" | "guideCatalogPage" | "gamePushSettingPage" | "userHomePage" | "groupChatPage" | "joinGroupPage" | "privateChatPage" | "myPublishPage" | "myFavoritePage" | "browseHistoryPage" | "profileEditPage" | "coinRechargePage" | "gameSubscribePage" | "douyinMallPage" | "activityCenterPage" | "adPage" | "coinDetailPage" | "miniGamesPage" | "bindGamePage" | "playerReportPage" | "addCustomEmojiPage";
|
|
41
48
|
/**
|
|
42
|
-
*
|
|
43
|
-
* -
|
|
44
|
-
* -
|
|
45
|
-
* -
|
|
46
|
-
* - save: 保存图片
|
|
47
|
-
* - cancel: 取消
|
|
49
|
+
* shareWebCard 的分享范围,决定 Native 分享面板展示哪些入口
|
|
50
|
+
* - RecentContacts / 1:最近联系人
|
|
51
|
+
* - External / 2:站外渠道
|
|
52
|
+
* - Channel / 3:频道(serverId 为空时展示全部圈子频道)
|
|
48
53
|
*/
|
|
54
|
+
export declare enum ShareType {
|
|
55
|
+
RecentContacts = 1,
|
|
56
|
+
External = 2,
|
|
57
|
+
Channel = 3
|
|
58
|
+
}
|
|
59
|
+
/** 图片分享弹窗操作 */
|
|
49
60
|
export type ShareImageAction = "wechat" | "moment" | "qq" | "save" | "cancel";
|
|
50
|
-
/**
|
|
51
|
-
export type
|
|
61
|
+
/** shareWebCard 的分享内容类型 */
|
|
62
|
+
export type ShareContentType = 1 | 2 | 3;
|
|
63
|
+
/** 通知原生更新数据的类型,对应 updateData 的 type,需要附带参数的类型在说明里给出 params 结构 */
|
|
64
|
+
export type UpdateDataType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* barrel re-export,按需从拆分后的子模块导出
|
|
2
|
+
* 类型 barrel:统一转发各子模块的类型定义。
|
|
5
3
|
*
|
|
6
4
|
* @module types
|
|
7
5
|
*/
|
|
@@ -9,3 +7,4 @@ export * from './base';
|
|
|
9
7
|
export * from './enums';
|
|
10
8
|
export * from './params';
|
|
11
9
|
export * from './results';
|
|
10
|
+
export * from './router';
|
package/dist/types/params.d.ts
CHANGED
|
@@ -1,32 +1,17 @@
|
|
|
1
1
|
import { Callbacks } from './base';
|
|
2
|
-
import { MediaFileType, SettingType, CameraDirection,
|
|
3
|
-
import { ChooseMediaResult, CheckPermissionResult, ShareImageResult,
|
|
4
|
-
/**
|
|
5
|
-
* 事件监听选项。
|
|
6
|
-
*
|
|
7
|
-
* 事件监听属于 native-event 通道,回调直接接收 Native 原始 payload,
|
|
8
|
-
* 不包装 code/msg/result。
|
|
9
|
-
*/
|
|
2
|
+
import { MediaFileType, SettingType, CameraDirection, PermissionType, ShareContentType, ToastDuration, UpdateDataType, ShareType } from './enums';
|
|
3
|
+
import { ChooseMediaResult, CheckPermissionResult, ShareImageResult, UploadFilesProgressCallback, UploadFilesResult, VoteData, OpenAppResult, OpenFriendsListResult, RecordAudioEndCallback, RecordAudioProgressCallback, SharedCallback, SharePictureUrlHandler } from './results';
|
|
4
|
+
/** 事件监听选项 */
|
|
10
5
|
export interface EventListenOptions {
|
|
11
6
|
/** 是否只监听一次,触发后自动取消监听 */
|
|
12
7
|
once?: boolean;
|
|
13
8
|
}
|
|
14
|
-
/**
|
|
15
|
-
* showToast 参数
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```ts
|
|
19
|
-
* mys.showToast({ text: '操作成功', duration: ToastDuration.Short })
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
9
|
+
/** showToast 参数 */
|
|
22
10
|
export interface ShowToastParams extends Callbacks {
|
|
23
11
|
/** 提示内容 */
|
|
24
12
|
text: string;
|
|
25
13
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* - ToastDuration.Short / 0:短时显示
|
|
29
|
-
* - ToastDuration.Long / 1:长时显示
|
|
14
|
+
* 显示时长:Short 短时显示,Long 长时显示。
|
|
30
15
|
*
|
|
31
16
|
* @default ToastDuration.Short
|
|
32
17
|
*/
|
|
@@ -34,8 +19,8 @@ export interface ShowToastParams extends Callbacks {
|
|
|
34
19
|
}
|
|
35
20
|
/** openPhoneSetting 参数 */
|
|
36
21
|
export interface OpenPhoneSettingParams extends Callbacks {
|
|
37
|
-
/**
|
|
38
|
-
|
|
22
|
+
/** 要打开的系统设置页类型,取值与 checkPermission 的 permission 一致 */
|
|
23
|
+
permission: SettingType;
|
|
39
24
|
}
|
|
40
25
|
/**
|
|
41
26
|
* checkPermission 参数
|
|
@@ -48,17 +33,15 @@ export interface CheckPermissionParams extends Callbacks<CheckPermissionResult>
|
|
|
48
33
|
* previewImage / previewVideo 参数
|
|
49
34
|
*/
|
|
50
35
|
export interface PlayMediaParams extends Callbacks {
|
|
51
|
-
/** 图片/视频 URL
|
|
36
|
+
/** 图片/视频 URL 列表,不能为空 */
|
|
52
37
|
urls: string[];
|
|
53
38
|
/**
|
|
54
|
-
*
|
|
39
|
+
* 当前预览资源在 urls 中的下标,从 0 开始,不能超出 urls 范围。
|
|
55
40
|
*
|
|
56
41
|
* @default 0
|
|
57
42
|
*/
|
|
58
43
|
current?: number;
|
|
59
44
|
}
|
|
60
|
-
/** playMedia Native 调用媒体类型 */
|
|
61
|
-
export type PlayMediaType = PreviewMediaType;
|
|
62
45
|
/**
|
|
63
46
|
* chooseMedia 参数
|
|
64
47
|
*/
|
|
@@ -96,35 +79,36 @@ export interface ChooseMediaParams extends Callbacks<ChooseMediaResult> {
|
|
|
96
79
|
}
|
|
97
80
|
/** uploadFiles 参数 */
|
|
98
81
|
export interface UploadFilesParams extends Callbacks<UploadFilesResult> {
|
|
99
|
-
/**
|
|
82
|
+
/** 待上传的临时文件路径列表,来自 chooseMedia 或 startRecordAudio 的 onEnd,单个文件也要放在数组中 */
|
|
100
83
|
files: string[];
|
|
101
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* 腾讯云 COS 目录前缀。
|
|
86
|
+
*
|
|
87
|
+
* @default 'multipleSource/common/'
|
|
88
|
+
*/
|
|
102
89
|
cosDirPath?: string;
|
|
103
90
|
/** 上传进度回调,仅 H5 侧生效 */
|
|
104
|
-
onProgress?:
|
|
91
|
+
onProgress?: UploadFilesProgressCallback;
|
|
105
92
|
}
|
|
106
|
-
/**
|
|
93
|
+
/** saveImageToPhotosAlbum 参数 */
|
|
107
94
|
export interface SaveImageToPhotosAlbumParams extends Callbacks {
|
|
108
|
-
/**
|
|
95
|
+
/** 图片的 base64 数据,支持 data URL 或纯 base64 */
|
|
109
96
|
filePath: string;
|
|
110
97
|
}
|
|
111
|
-
/**
|
|
112
|
-
export
|
|
113
|
-
/**
|
|
114
|
-
export interface StartRecordParams extends Callbacks {
|
|
115
|
-
/** 录音最大时长(秒) */
|
|
98
|
+
/** startRecordAudio 参数 */
|
|
99
|
+
export interface StartRecordAudioParams extends Callbacks {
|
|
100
|
+
/** 录音最大时长,单位秒,必须大于 0,到达后自动结束录音;不传则由宿主 App 决定 */
|
|
116
101
|
maxDuration?: number;
|
|
102
|
+
/** 录音结束回调,手动停止、到达最长时长、被系统打断时触发,只对本次录音有效;取消录音不会触发 */
|
|
103
|
+
onEnd?: RecordAudioEndCallback;
|
|
104
|
+
/** 录音音量回调,录音期间持续触发,只对本次录音有效;触发频率由宿主 App 决定 */
|
|
105
|
+
onProgress?: RecordAudioProgressCallback;
|
|
117
106
|
}
|
|
118
107
|
/** setClipboardData 参数 */
|
|
119
108
|
export interface SetClipboardDataParams extends Callbacks {
|
|
120
|
-
/**
|
|
109
|
+
/** 剪贴板内容,允许空字符串 */
|
|
121
110
|
data: string;
|
|
122
111
|
}
|
|
123
|
-
/** 外部浏览器打开参数 */
|
|
124
|
-
export interface OpenInExternalBrowserParams extends Callbacks {
|
|
125
|
-
/** 目标 URL */
|
|
126
|
-
url: string;
|
|
127
|
-
}
|
|
128
112
|
/** triggerVibrate 多段震动序列项 */
|
|
129
113
|
export interface VibrateStep {
|
|
130
114
|
/** 本段时长,单位 ms */
|
|
@@ -145,93 +129,106 @@ export interface TriggerVibrateParams extends Callbacks {
|
|
|
145
129
|
/** 多段变力度震动序列。有此字段时忽略 duration / intensity */
|
|
146
130
|
steps?: VibrateStep[];
|
|
147
131
|
/**
|
|
148
|
-
*
|
|
132
|
+
* 是否循环,只在多段震动(传了 steps)时生效。true 表示无限循环整个序列,直到调用 stopVibrate。
|
|
149
133
|
*
|
|
150
134
|
* @default false
|
|
151
135
|
*/
|
|
152
136
|
repeat?: boolean;
|
|
153
137
|
}
|
|
138
|
+
/** openApp 参数 */
|
|
139
|
+
export interface OpenAppParams extends Callbacks<OpenAppResult> {
|
|
140
|
+
/** 未安装时的下载地址 */
|
|
141
|
+
url?: string;
|
|
142
|
+
/** 要打开的 App 包名列表。Android 可传多个包名,iOS 传单个元素的数组 */
|
|
143
|
+
packageNames?: string[];
|
|
144
|
+
}
|
|
145
|
+
/** showPageName 参数 */
|
|
146
|
+
export interface ShowPageNameParams extends Callbacks {
|
|
147
|
+
/** 页面类型:1 名人堂页面 */
|
|
148
|
+
nameType: number;
|
|
149
|
+
}
|
|
150
|
+
/** swipeBack 参数 */
|
|
151
|
+
export interface SwipeBackParams extends Callbacks {
|
|
152
|
+
/** 是否启用侧滑返回,Native 默认启用 */
|
|
153
|
+
enable: boolean;
|
|
154
|
+
}
|
|
154
155
|
/**
|
|
155
|
-
*
|
|
156
|
+
* setBeforeInfo 参数:当前页面的埋点信息,字段由业务决定,会原样传给 Native。
|
|
156
157
|
*
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
* @example
|
|
160
|
-
* ```ts
|
|
161
|
-
* mys.shareWebCard({
|
|
162
|
-
* title: '精彩文章',
|
|
163
|
-
* content: '点开看看',
|
|
164
|
-
* shareUrl: 'https://example.com/article/1'
|
|
165
|
-
* })
|
|
166
|
-
* ```
|
|
158
|
+
* 常见字段为 PageID(页面编号)和 PageName(页面名称),业务也可以追加自己的字段。
|
|
167
159
|
*/
|
|
160
|
+
export interface SetBeforeInfoParams extends Callbacks {
|
|
161
|
+
/** 页面编号 */
|
|
162
|
+
PageID?: string | number;
|
|
163
|
+
/** 页面名称 */
|
|
164
|
+
PageName?: string;
|
|
165
|
+
[key: string]: unknown;
|
|
166
|
+
}
|
|
167
|
+
/** shareWebCard 参数 */
|
|
168
168
|
export interface ShareWebCardParams extends Callbacks {
|
|
169
169
|
/** 分享标题 */
|
|
170
170
|
title: string;
|
|
171
|
-
/**
|
|
172
|
-
content
|
|
171
|
+
/** 分享内容 */
|
|
172
|
+
content: string;
|
|
173
173
|
/** 分享图标 URL */
|
|
174
|
-
icon
|
|
174
|
+
icon: string;
|
|
175
175
|
/** 分享链接 */
|
|
176
|
-
shareUrl
|
|
177
|
-
/**
|
|
178
|
-
externalContent
|
|
176
|
+
shareUrl: string;
|
|
177
|
+
/** 聊天列表外显内容 */
|
|
178
|
+
externalContent: string;
|
|
179
179
|
/**
|
|
180
|
-
*
|
|
180
|
+
* 分享面板展示的范围,取值见 ShareType:1 最近联系人,2 站外渠道,3 频道(serverId 为空时展示全部圈子频道)
|
|
181
181
|
*
|
|
182
|
-
* @default [
|
|
182
|
+
* @default [ShareType.RecentContacts, ShareType.External, ShareType.Channel]
|
|
183
183
|
*/
|
|
184
|
-
shareTypes?:
|
|
185
|
-
/**
|
|
184
|
+
shareTypes?: ShareType[];
|
|
185
|
+
/** 是否分享图片;为 true 时需要通过 getSharePictureUrl 提供图片地址 */
|
|
186
186
|
isSharePic?: boolean;
|
|
187
|
-
/**
|
|
187
|
+
/** 指定分享的圈子 ID */
|
|
188
188
|
serverId?: string;
|
|
189
|
-
/**
|
|
189
|
+
/** 用于 Native 埋点上报,需自行 JSON.stringify */
|
|
190
190
|
trackData?: string;
|
|
191
|
-
/**
|
|
192
|
-
daokeUrl
|
|
193
|
-
/**
|
|
191
|
+
/** daoke 通用链接,用于 App 内打开沉浸式、普通 H5 页面等,不能为空 */
|
|
192
|
+
daokeUrl: string;
|
|
193
|
+
/** 指定分享的频道 ID,英文逗号分隔,serverId 不为空时才有效 */
|
|
194
194
|
channelIds?: string;
|
|
195
|
-
/**
|
|
196
|
-
contentType?:
|
|
195
|
+
/** 分享内容类型 */
|
|
196
|
+
contentType?: ShareContentType;
|
|
197
|
+
/** 动态详情,长文动态分享时传给客户端做动态相关操作,传对象时 SDK 会序列化为 JSON 字符串后下发 */
|
|
198
|
+
activityDetail?: string | Record<string, unknown>;
|
|
199
|
+
/** 用户完成分享后的回调,只对本次调用生效;用户取消分享不会触发 */
|
|
200
|
+
onShared?: SharedCallback;
|
|
201
|
+
/** 提供分享图片的地址,仅 isSharePic 为 true 时生效;用户点击客户端的生成图片按钮时 Native 才会调用,可以返回 Promise,截图或上传失败时不返回 pictureUrl */
|
|
202
|
+
getSharePictureUrl?: SharePictureUrlHandler;
|
|
197
203
|
}
|
|
198
|
-
/**
|
|
199
|
-
* shareImage 参数
|
|
200
|
-
*
|
|
201
|
-
* 唤起客户端图片分享弹窗
|
|
202
|
-
*
|
|
203
|
-
* @example
|
|
204
|
-
* ```ts
|
|
205
|
-
* mys.shareImage({ url: 'https://example.com/poster.png' })
|
|
206
|
-
* ```
|
|
207
|
-
*/
|
|
204
|
+
/** shareImage 参数 */
|
|
208
205
|
export interface ShareImageParams extends Callbacks<ShareImageResult> {
|
|
209
206
|
/** 待分享图片的网络地址,需为 http(s) URL */
|
|
210
207
|
url: string;
|
|
211
208
|
}
|
|
212
|
-
/**
|
|
213
|
-
* showAd 参数
|
|
214
|
-
*
|
|
215
|
-
* 展示原生广告视频
|
|
216
|
-
*
|
|
217
|
-
* @example
|
|
218
|
-
* ```ts
|
|
219
|
-
* mys.showAd({ type: 1, circle_id: '123' })
|
|
220
|
-
* ```
|
|
221
|
-
*/
|
|
209
|
+
/** showAd 参数 */
|
|
222
210
|
export interface ShowAdParams extends Callbacks {
|
|
223
|
-
/**
|
|
211
|
+
/** 广告类型:1 激励(观影有礼、补签),2 平台运营相关(天天有礼加码、任务、抽奖) */
|
|
224
212
|
type: number;
|
|
225
|
-
/**
|
|
213
|
+
/** 广告业务参数 */
|
|
214
|
+
params: ShowAdBizParams;
|
|
215
|
+
}
|
|
216
|
+
/** showAd 业务参数 */
|
|
217
|
+
export interface ShowAdBizParams {
|
|
218
|
+
/** 圈子 ID */
|
|
226
219
|
circle_id?: string;
|
|
227
|
-
/**
|
|
220
|
+
/** 周期天数 */
|
|
228
221
|
cycle_day?: string | number;
|
|
229
|
-
/**
|
|
222
|
+
/** 模块:1 观影,2 天天领福利 */
|
|
230
223
|
module?: string | number;
|
|
231
|
-
/**
|
|
224
|
+
/** 对象 JSON 字符串,不能传单纯字符串,必须用对象包裹后转成 JSON 字符串 */
|
|
225
|
+
module_data?: string;
|
|
226
|
+
/** 周期 ID */
|
|
232
227
|
cycle_id?: string;
|
|
233
|
-
/**
|
|
228
|
+
/** 转盘 ID */
|
|
234
229
|
wheel_lottery_id?: string | number;
|
|
230
|
+
/** 活动 ID */
|
|
231
|
+
activity_id?: string | number;
|
|
235
232
|
}
|
|
236
233
|
/** toBindGameRole 参数 */
|
|
237
234
|
export interface BindGameRoleParams extends Callbacks {
|
|
@@ -240,3 +237,40 @@ export interface BindGameRoleParams extends Callbacks {
|
|
|
240
237
|
/** 服务器 ID */
|
|
241
238
|
serverId: string;
|
|
242
239
|
}
|
|
240
|
+
/** openCommentPanel 参数 */
|
|
241
|
+
export interface OpenCommentPanelParams extends Callbacks {
|
|
242
|
+
/** 服务器 ID */
|
|
243
|
+
serverId: string;
|
|
244
|
+
/** 动态 ID */
|
|
245
|
+
dynamicId: string;
|
|
246
|
+
/** 评论 ID,传入时定位到该评论 */
|
|
247
|
+
commentId?: string;
|
|
248
|
+
/** 打开后是否自动聚焦输入框 */
|
|
249
|
+
autoFocusInput?: boolean;
|
|
250
|
+
}
|
|
251
|
+
/** voteAction 参数:当前投票数据加上被点击的选项下标 */
|
|
252
|
+
export interface VoteActionParams extends VoteData, Callbacks<VoteData> {
|
|
253
|
+
/** 被点击的投票选项下标 */
|
|
254
|
+
index: number;
|
|
255
|
+
}
|
|
256
|
+
/** openGiftBag 参数 */
|
|
257
|
+
export interface OpenGiftBagParams extends Callbacks {
|
|
258
|
+
/** 赠送对象的用户 ID */
|
|
259
|
+
user_id: string;
|
|
260
|
+
/** 是否切换到背包 */
|
|
261
|
+
openBag?: boolean;
|
|
262
|
+
/** 服务器 ID */
|
|
263
|
+
server_id: string;
|
|
264
|
+
}
|
|
265
|
+
/** openFriendsList 参数 */
|
|
266
|
+
export interface OpenFriendsListParams extends Callbacks<OpenFriendsListResult> {
|
|
267
|
+
/** 已选好友 ID,会在列表中回显为选中状态,没有已选好友时传空数组 */
|
|
268
|
+
selectedUserIds: string[];
|
|
269
|
+
}
|
|
270
|
+
/** updateData 参数 */
|
|
271
|
+
export interface UpdateDataParams extends Callbacks {
|
|
272
|
+
/** 更新的数据类型,各类型含义和对应的 params 结构见可选值说明 */
|
|
273
|
+
type: UpdateDataType;
|
|
274
|
+
/** 附带参数,结构随 type 变化,不需要参数的类型可省略 */
|
|
275
|
+
params?: Record<string, unknown>;
|
|
276
|
+
}
|