依赖:ohpm i @tencent/wechat_open_sdk@1.0.19(feature_capabilities)
T-M3-13 ShareProvider:friendsSharetypeUrlToptitleDescript → SendMessageToWXReq(scene 会话/朋友圈)
+ WXWebpageObject → 回传 sharesuccess{success(2成功/3取消),type(1好友/2朋友圈)}。
type 2截图/3图片/4视频暂回退网页分享(TODO);微信未安装回 cancel 不卡死
T-M3-14 LoginProvider:accreditlogin("1"=QQ空实现/其他=微信) → SendAuthReq(scope snsapi_userinfo) → 取 code。
🔴 AppSecret 不入端:code 换 profile 必须服务端,无端点时记录 code+TODO,不推不完整 sharelogin(红线)
WeChatApi 单例:createWXAPI(AppID wxd2bd650e06bdfe58 公开标识) + sendReq + handleWant 路由 onResp
EntryAbility.onCreate/onNewWant → WeChatApi.handleWant(接收微信回调)
module.json5:querySchemes ["weixin"](isWXAppInstalled)
运行期成功前提(已注释说明):微信开放平台注册本 HarmonyOS 应用(bundleName+指纹绑 AppID)、登录 profile 需服务端 code 换取端点。
devecocli build 通过(CompileArkTS 编译微信代码无误)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
30 lines
2.0 KiB
Plaintext
30 lines
2.0 KiB
Plaintext
/**
|
||
* 组装根(框架 §6.2 DI)。**唯一知道"全部能力"的地方**。
|
||
*
|
||
* 桥核心、容器都不感知具体能力;新增/裁剪能力只改这里一行。
|
||
* M2:仅示例能力(验证插件模式)。M3:替换为全部真实 Provider + 占位桩
|
||
* (RoomStubProvider/PayStubProvider,§6.5),契约 handler 名/数量不变。
|
||
*/
|
||
import { CapabilityProvider, EchoSampleProvider, RoomStubProvider, PayStubProvider,
|
||
VibrateProvider, ClipboardProvider, AppSystemProvider, DeviceProvider,
|
||
NetworkProvider, ShareProvider, LoginProvider } from 'feature_capabilities';
|
||
|
||
export function buildCapabilities(): CapabilityProvider[] {
|
||
return [
|
||
new EchoSampleProvider(), // M2 回显样板(M3 全部 Provider 就位后可移除)
|
||
// —— M3 已落地能力(顺序无关,互不依赖)——
|
||
new AppSystemProvider(), // orientation/browser/finsh/openApplyDownloadpath/notification
|
||
new VibrateProvider(), // vibrator/repeatvibrator/canclevibrator
|
||
new ClipboardProvider(), // gameCopytext/gamepastetext
|
||
new DeviceProvider(), // getTime/getphonestate/getbattery/getwifiLevel/getphoneInfo/getmarketname/getothername/getOther/getcompareCode
|
||
new NetworkProvider(), // getnetwork + 出站广播
|
||
new ShareProvider(), // friendsSharetypeUrlToptitleDescript → sharesuccess(微信)
|
||
new LoginProvider(), // accreditlogin → sharelogin(微信 code 模式,profile 待服务端)
|
||
// —— 暂缓能力占位桩(§6.5)——
|
||
new RoomStubProvider(),
|
||
new PayStubProvider(),
|
||
// —— M3 待落地:DeviceProvider/NetworkProvider/ShakeProvider/LocationProvider/AudioProvider/
|
||
// ScanProvider/CameraProvider/PhotoProvider/NavProvider/ShareProvider/LoginProvider ——
|
||
];
|
||
}
|