@kbapp/js-bridge 0.4.8-alpha.0 → 1.0.0-alpha.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.
Files changed (60) hide show
  1. package/LOGIN.MD +79 -0
  2. package/README.MD +1045 -182
  3. package/dist/core/index.d.ts +68 -16
  4. package/dist/index.d.ts +8 -5
  5. package/dist/index.es.js +516 -0
  6. package/dist/index.umd.js +1 -0
  7. package/dist/lib/app-version-support.d.ts +41 -0
  8. package/dist/lib/bridge-code.d.ts +14 -0
  9. package/dist/lib/check-for-new-version.d.ts +7 -5
  10. package/dist/lib/close-webview.d.ts +6 -2
  11. package/dist/lib/define-permission-usage.d.ts +8 -2
  12. package/dist/lib/generate-kb-sign.d.ts +13 -2
  13. package/dist/lib/{get-device-info.d.ts → get-app-base-info.d.ts} +14 -7
  14. package/dist/lib/open-post-editor.d.ts +47 -4
  15. package/dist/lib/report-da-event.d.ts +33 -0
  16. package/dist/lib/run-action.d.ts +9 -5
  17. package/dist/lib/save-image-to-local.d.ts +8 -4
  18. package/dist/lib/save-video-to-local.d.ts +7 -3
  19. package/dist/lib/scan-qr-code.d.ts +23 -0
  20. package/dist/lib/screen-orientation.d.ts +13 -0
  21. package/dist/lib/set-webview-title.d.ts +7 -3
  22. package/dist/lib/share-image.d.ts +21 -0
  23. package/dist/lib/share-model.d.ts +170 -45
  24. package/dist/lib/subscribe-notify.d.ts +25 -0
  25. package/dist/lib/trigger-login.d.ts +18 -10
  26. package/dist/utils/filter-undefined-properties.d.ts +6 -0
  27. package/dist/utils/promise-cache.d.ts +5 -0
  28. package/dist/utils/wrap-async.d.ts +17 -0
  29. package/examples/index.html +236 -0
  30. package/package.json +17 -4
  31. package/vite.config.ts +32 -0
  32. package/dist/core/index.js +0 -84
  33. package/dist/core/lib/ds-bridge.d.ts +0 -7
  34. package/dist/core/lib/ds-bridge.js +0 -126
  35. package/dist/core/lib/flutter-ds-bridge.js +0 -172
  36. package/dist/core/lib/js-bridge.d.ts +0 -22
  37. package/dist/core/lib/js-bridge.js +0 -188
  38. package/dist/index.js +0 -33
  39. package/dist/lib/can-i-use.d.ts +0 -13
  40. package/dist/lib/can-i-use.js +0 -102
  41. package/dist/lib/check-for-new-version.js +0 -26
  42. package/dist/lib/close-webview.js +0 -24
  43. package/dist/lib/define-permission-usage.js +0 -40
  44. package/dist/lib/generate-kb-sign.js +0 -75
  45. package/dist/lib/get-device-info.js +0 -36
  46. package/dist/lib/js-bridge-code.d.ts +0 -10
  47. package/dist/lib/js-bridge-code.js +0 -14
  48. package/dist/lib/open-post-editor.js +0 -116
  49. package/dist/lib/report-getui.d.ts +0 -14
  50. package/dist/lib/report-getui.js +0 -17
  51. package/dist/lib/run-action.js +0 -29
  52. package/dist/lib/save-image-to-local.js +0 -28
  53. package/dist/lib/save-video-to-local.js +0 -28
  54. package/dist/lib/set-webview-title.js +0 -27
  55. package/dist/lib/share-model.js +0 -80
  56. package/dist/lib/share-poster.d.ts +0 -16
  57. package/dist/lib/share-poster.js +0 -26
  58. package/dist/lib/trigger-login.js +0 -195
  59. package/dist/util/promise-cache.d.ts +0 -5
  60. package/dist/util/promise-cache.js +0 -24
package/LOGIN.MD ADDED
@@ -0,0 +1,79 @@
1
+
2
+ ### 登录设计
3
+
4
+ 核心提供
5
+
6
+ 1. 静默登录方法, 如果用户未注册, 不引导注册
7
+ 2. 强制登录, 如果用户未注册, 引导注册
8
+
9
+ 页面打开的时候, 默认执行静默登录, 获取用户信息
10
+
11
+ 1. 某些点击事件需要登录才能执行, 提供 decorateTryLogin
12
+
13
+ ```js
14
+ const onTapSomeButton = decorateTryLogin(() => {
15
+ // Todo someting
16
+ })
17
+ ```
18
+
19
+ 该装饰器执行逻辑为如果未登录, 则执行登录操作(比如跳转到登录页面), 并直接抛出异常, 不做 _监听登录成功后执行回调函数_ 操作
20
+
21
+ > 那岂不是用户登陆完成后回到当页面还需与再点一下
22
+
23
+ 没错, 的确要这么设计, 原因是为了解 如果点击了 2 个通过装饰器包装的按钮, 登陆成功后, 2 个按钮的回调事件将会全部执行(其实也有办法解决, 只是多点代码) 这种情况, 测试较真的话, 真是个问题
24
+ 担心一个动作触发累计多个回调事件, 导致逻辑混乱
25
+
26
+ ---
27
+
28
+ A 页面 业务逻辑简单, 监听登录成功后, 自身处理重新触发登录请求
29
+ B 页面 业务复杂, 需要登录成功后原地刷新
30
+ C 页面 需要登录成功后才能看
31
+
32
+ ---
33
+
34
+ 1. uniapp 网页 适配 开吧 app 方案 (不采用中间件)
35
+
36
+ A,B,C 均需要考虑停留一点时间后, 页面登录成功了
37
+
38
+ A 页面 通过 onLoginReady 替代 onMounted
39
+
40
+ ```js
41
+ onLoginReady(() => {
42
+ <!-- todo 业务代码 -->
43
+ })
44
+ ```
45
+
46
+ B 页面需要
47
+
48
+ 监听页面登录成功后执行刷新页面
49
+
50
+ ```js
51
+ onLoginIfNotLoggedIn(() => {
52
+ <!-- 当页面登录后, 执行刷新页面 -->
53
+ window.reload()
54
+ })
55
+ ```
56
+
57
+ C 页面
58
+
59
+ 当页面没有登录的时候, redirectTo 登录页面, 登录页面有个按钮, 点击唤起开吧登录, 页面加载的时候也立刻唤起开吧登录, 登录成功后 redirectTo 回来
60
+
61
+ ---
62
+
63
+ 2. 纯小程序架构
64
+
65
+ A,B,C 均需要考虑页面加载一段时间后, app 登录完成了或者登录失败, 页面主动点击触发登录
66
+
67
+ A 页面
68
+ 监听登录成功执行操作
69
+
70
+ B 页面
71
+ 监听登录成功后, 刷新页面
72
+
73
+ C 页面
74
+ 页面打开的时候,如果未登录
75
+ redirectTo 登录授权页面, 登录成功后 redirectTo 返回当前页面
76
+
77
+ 我建议 B 和 C 的分享链接改为 有个公共的前缀页面, 该页面静默登录或者强制登录成功后再进入 B/C, 这样子可以避免页面刷一下的体验
78
+
79
+ 执行登录是前往一个登录页面