qsh-webview-sdk 2.4.6 → 2.4.8
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 +32 -73
- package/dist/index.d.ts +4 -0
- package/dist/qsh-webview-sdk.es.js +690 -671
- package/dist/qsh-webview-sdk.es.js.map +1 -1
- package/dist/qsh-webview-sdk.umd.js +1 -1
- package/dist/qsh-webview-sdk.umd.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -47,7 +47,6 @@ import qsh from 'qsh-webview-sdk';
|
|
|
47
47
|
|
|
48
48
|
// 等待 SDK 就绪后再调用 API(内部也有自动等待机制)
|
|
49
49
|
qsh.ready().then(() => {
|
|
50
|
-
qsh.navigateTo({ url: '/pages/test/test' });
|
|
51
50
|
});
|
|
52
51
|
```
|
|
53
52
|
|
|
@@ -79,7 +78,7 @@ await qsh.ready();
|
|
|
79
78
|
|
|
80
79
|
- 浏览器环境下,SDK 会在 DOM 就绪后自动初始化,并触发 `UniAppJSBridgeReady` 事件。
|
|
81
80
|
- SSR/Node 环境不会执行自动初始化;在客户端 Hydration 后会按上述规则自动初始化。
|
|
82
|
-
- 所有对外 API(如 `
|
|
81
|
+
- 所有对外 API(如 `postMessage`、`getEnv` 等)内置自动等待机制:即使在未就绪时调用,也会在就绪后自动执行,无需手动监听事件。
|
|
83
82
|
- 仍可使用 `qsh.ready()` 等待准备完成;如需“控制初始化时机”,可手动调用 `qsh.init()`。该方法是幂等的,多次调用仅首次生效。
|
|
84
83
|
|
|
85
84
|
> 注:当检测到运行于微信内且为小程序 web-view 场景时,SDK 将自动按需注入 `jweixin-1.6.2.js`(若页面已引入则不会重复注入)。若你需要自定义版本或自行控制加载时机,可在页面提前引入 jweixin,SDK 将跳过自动注入。
|
|
@@ -88,7 +87,7 @@ await qsh.ready();
|
|
|
88
87
|
|
|
89
88
|
```javascript
|
|
90
89
|
// 直接调用,无需等待(内部会自动等待就绪)
|
|
91
|
-
qsh.
|
|
90
|
+
qsh.postMessage({ data: {} });
|
|
92
91
|
|
|
93
92
|
// 如需在 UI 上显示“就绪状态”,可以使用 ready()
|
|
94
93
|
qsh.ready().then(() => {
|
|
@@ -96,35 +95,6 @@ qsh.ready().then(() => {
|
|
|
96
95
|
});
|
|
97
96
|
```
|
|
98
97
|
|
|
99
|
-
### 导航功能
|
|
100
|
-
|
|
101
|
-
```javascript
|
|
102
|
-
// 跳转到新页面
|
|
103
|
-
qsh.navigateTo({
|
|
104
|
-
url: '/pages/detail/detail?id=1'
|
|
105
|
-
});
|
|
106
|
-
|
|
107
|
-
// 返回上一页
|
|
108
|
-
qsh.navigateBack({
|
|
109
|
-
delta: 1
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
// 切换 Tab
|
|
113
|
-
qsh.switchTab({
|
|
114
|
-
url: '/pages/home/home'
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
// 重启应用
|
|
118
|
-
qsh.reLaunch({
|
|
119
|
-
url: '/pages/index/index'
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
// 重定向
|
|
123
|
-
qsh.redirectTo({
|
|
124
|
-
url: '/pages/login/login'
|
|
125
|
-
});
|
|
126
|
-
```
|
|
127
|
-
|
|
128
98
|
### 消息通信
|
|
129
99
|
|
|
130
100
|
```javascript
|
|
@@ -151,25 +121,16 @@ qsh.getEnv(function(result) {
|
|
|
151
121
|
// 获取当前环境信息
|
|
152
122
|
const env = qsh.environment;
|
|
153
123
|
|
|
154
|
-
console.log('环境类型:', env.type); // 'weixin' | '
|
|
124
|
+
console.log('环境类型:', env.type); // 'weixin' | 'offline' | 'uvue' | 'webview'
|
|
155
125
|
console.log('是否微信小程序:', env.isWeixinMiniProgram);
|
|
156
|
-
console.log('
|
|
126
|
+
console.log('是否App:', env.isUniApp);
|
|
127
|
+
console.log('是否鸿蒙:', env.isUvue);
|
|
157
128
|
```
|
|
158
129
|
|
|
159
130
|
<!-- 加密能力(SM2/SM3/SM4)已在 v2.1.0 起移除,如需相关能力请在业务侧引入专用加密库。 -->
|
|
160
131
|
|
|
161
132
|
## API 文档
|
|
162
133
|
|
|
163
|
-
### 导航 API
|
|
164
|
-
|
|
165
|
-
| 方法 | 说明 | 参数 |
|
|
166
|
-
|------|------|------|
|
|
167
|
-
| `navigateTo` | 保留当前页面,跳转到应用内的某个页面 | `{ url: string }` |
|
|
168
|
-
| `navigateBack` | 关闭当前页面,返回上一页面或多级页面 | `{ delta?: number }` |
|
|
169
|
-
| `switchTab` | 跳转到 tabBar 页面 | `{ url: string }` |
|
|
170
|
-
| `reLaunch` | 关闭所有页面,打开到应用内的某个页面 | `{ url: string }` |
|
|
171
|
-
| `redirectTo` | 关闭当前页面,跳转到应用内的某个页面 | `{ url: string }` |
|
|
172
|
-
|
|
173
134
|
### 消息 API
|
|
174
135
|
|
|
175
136
|
| 方法 | 说明 | 参数 |
|
|
@@ -349,7 +310,6 @@ src/
|
|
|
349
310
|
│ ├── image.js # 图片 API
|
|
350
311
|
│ ├── scan.js # 扫码 API
|
|
351
312
|
│ ├── location.js # 位置 API
|
|
352
|
-
│ ├── navigation.js # 导航 API
|
|
353
313
|
│ └── message.js # 消息 API
|
|
354
314
|
├── index.js # 主入口
|
|
355
315
|
└── index.d.ts # 类型定义
|
|
@@ -372,30 +332,29 @@ references/ # 开发参考(如原版 uni.webview.1.5.6.js)
|
|
|
372
332
|
|
|
373
333
|
### 小程序(web-view)
|
|
374
334
|
|
|
375
|
-
- [
|
|
376
|
-
- [
|
|
377
|
-
- [
|
|
378
|
-
- [
|
|
379
|
-
- [
|
|
380
|
-
- [
|
|
381
|
-
- [
|
|
335
|
+
- [] 扫码 ✅
|
|
336
|
+
- [] 获取位置 ✅
|
|
337
|
+
- [] 查看位置 ✅
|
|
338
|
+
- [] 微信分享 ✅
|
|
339
|
+
- [] 照片选择 ✅
|
|
340
|
+
- [] 打开地图选择位置 ✅
|
|
341
|
+
- [] 人脸核身 ✅
|
|
382
342
|
|
|
383
343
|
### APP(UniApp/Plus/NVUE/UVUE)
|
|
384
344
|
|
|
385
|
-
- [
|
|
386
|
-
- [
|
|
387
|
-
- [
|
|
388
|
-
- [
|
|
389
|
-
- [
|
|
390
|
-
- [
|
|
391
|
-
- [
|
|
392
|
-
- [
|
|
393
|
-
- [
|
|
394
|
-
- [x]
|
|
395
|
-
- [
|
|
396
|
-
- [
|
|
397
|
-
- [
|
|
398
|
-
- [ ] 打印服务
|
|
345
|
+
- [] 扫码 ✅
|
|
346
|
+
- [] 获取位置 ✅
|
|
347
|
+
- [] 查看位置 ✅
|
|
348
|
+
- [] 照片选择 ✅
|
|
349
|
+
- [] 持续定位 ✅
|
|
350
|
+
- [x] 相机
|
|
351
|
+
- [x] 蓝牙
|
|
352
|
+
- [] 微信分享 ✅
|
|
353
|
+
- [] 照片选择 ✅
|
|
354
|
+
- [x] 文件选择
|
|
355
|
+
- [] 打开地图选择位置 ✅
|
|
356
|
+
- [] 人脸核身 ✅
|
|
357
|
+
- [] 打印服务 ✅
|
|
399
358
|
|
|
400
359
|
### 扫码功能
|
|
401
360
|
|
|
@@ -602,8 +561,9 @@ qsh.createBLEConnection({
|
|
|
602
561
|
```javascript
|
|
603
562
|
// 打开地图选择位置(APP)
|
|
604
563
|
qsh.chooseLocation({
|
|
605
|
-
|
|
606
|
-
|
|
564
|
+
// 初始经纬度 不传默认取当前定位
|
|
565
|
+
latitude: 39.908823,
|
|
566
|
+
longitude: 116.397470,
|
|
607
567
|
success: (res) => {
|
|
608
568
|
console.log(res.location);
|
|
609
569
|
console.log(res.formatted_address);
|
|
@@ -639,6 +599,7 @@ qsh.printPdf({
|
|
|
639
599
|
```javascript
|
|
640
600
|
qsh.filePreview({
|
|
641
601
|
url: 'https://example.com/files/demo.pdf', // 文件地址
|
|
602
|
+
fileType: 'pdf', // 文件类型
|
|
642
603
|
showMenu: true, // 是否显示右上角菜单,默认 false
|
|
643
604
|
success: (res) => console.log('文件预览请求成功', res),
|
|
644
605
|
fail: (err) => console.error('文件预览失败:', err)
|
|
@@ -647,11 +608,12 @@ qsh.filePreview({
|
|
|
647
608
|
// Promise 用法
|
|
648
609
|
await qsh.filePreviewAsync({
|
|
649
610
|
url: 'https://example.com/files/demo.pdf',
|
|
611
|
+
fileType: 'pdf',
|
|
650
612
|
showMenu: false
|
|
651
613
|
});
|
|
652
614
|
```
|
|
653
615
|
|
|
654
|
-
>
|
|
616
|
+
> `fileType` 仅支持以下取值:`doc`、`xls`、`ppt`、`pdf`、`docx`、`xlsx`、`pptx`。
|
|
655
617
|
> 微信小程序 `web-view` 下,SDK 会通过 `wx.miniProgram.postMessage` 把预览请求投递给宿主,再调用 `wx.miniProgram.navigateBack` 返回基座;APP 端通过 `callApiInWebView` 调用基座能力。
|
|
656
618
|
|
|
657
619
|
### 跳转其他微信小程序
|
|
@@ -660,8 +622,7 @@ await qsh.filePreviewAsync({
|
|
|
660
622
|
qsh.navigateToMiniProgram({
|
|
661
623
|
appid: '',
|
|
662
624
|
path: '',
|
|
663
|
-
// release/trial/develop
|
|
664
|
-
env: 'release',
|
|
625
|
+
env: 'release', // release/trial/develop
|
|
665
626
|
success: (res) => console.log('跳转成功', res),
|
|
666
627
|
fail: (err) => console.error('跳转失败:', err),
|
|
667
628
|
});
|
|
@@ -736,8 +697,6 @@ onMounted(async () => {
|
|
|
736
697
|
qsh.ready().catch((err) => {
|
|
737
698
|
console.error('qsh ready failed', err)
|
|
738
699
|
})
|
|
739
|
-
|
|
740
|
-
qsh.navigateTo({ url: '/pages/demo/index' });
|
|
741
700
|
});
|
|
742
701
|
</script>
|
|
743
702
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -54,9 +54,13 @@ declare namespace UniWebView {
|
|
|
54
54
|
[key: string]: any;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
+
type FilePreviewType = "doc" | "xls" | "ppt" | "pdf" | "docx" | "xlsx" | "pptx";
|
|
58
|
+
|
|
57
59
|
interface FilePreviewOptions {
|
|
58
60
|
/** file url */
|
|
59
61
|
url: string;
|
|
62
|
+
/** file type */
|
|
63
|
+
fileType: FilePreviewType;
|
|
60
64
|
/** whether to show the top-right menu */
|
|
61
65
|
showMenu?: boolean;
|
|
62
66
|
/** success callback */
|