weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博,微博登录

weibo_har鸿蒙微博分享,单例二次封装,鸿蒙微博

HarmonyOS 5.0.3 Beta2 SDK,原样包含OpenHarmony SDK Ohos_sdk_public 5.0.3.131 (API Version 15 Beta2)

🏆简介

@zyl/weibo_har是微博封装使用,支持原生core使用

🌞下载安装

ts 复制代码
ohpm install @zyl/weibo_har // 微博分享类

ohpm i @zyl/commonlibhar // 可搭配使用操作数据,如网络图片->沙箱路径->微博分享类

效果如下

图片

视频

🙏使用说明

前期准备

有关资料可参考
sdk接入流程
官方开发文档

产物,APP_KEY_WB,REDIRECT_URL_WB,SCOPE_WB

(1)module.json5 配置文件修改

复制代码
// module.json5 的"module"节点下配置 querySchemes
"querySchemes": [
   "sinaweibo",
]  

(1)EntryAbility.ets 配置文件修改

c 复制代码
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    // 初始化微博sdk
    ShareWeiBoSdk.getInstance().initSdkCreate(new AuthInfo(
      this.context, 
      APP_KEY_WB, // 申请
      REDIRECT_URL_WB,// 申请
      SCOPE_WB// 申请
    ))
    // 接受回调的
    ShareWeiBoSdk.mWBAPI?.doWBAsResult(want,this.context);
}
//....
  onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    // 接受回调的
    ShareWeiBoSdk.mWBAPI?.doWBAsResult(want,this.context);
}

微博是否安装

checkWeiBoApp()

c 复制代码
const flag = checkWeiBoApp() // 布尔值

微博分享

处理数据可查看har包,如网络图片存沙箱路径,base63等点击跳转

doWeiboShare

  • @param text 文本
  • @param string[] // 沙箱路径
  • @returns Promise<WeiboShareCallBack>
c 复制代码
import { doWeiboShare, ShareWeiBoSdk, WeiboShareCallBack } from "@zyl/weibo_har";

doWeiboShare(text, [this.pixmapUri])

分享类完整分享代码

由于限制,分享了视频就覆盖了图片,切视频只能传一组。

await doWeiboShare('分享的文字', strs) // 分享图片

await doWeiboShare('分享的文字', [],[{videoPath: videoPath, coverPath: strs[0]}]) // 分享视频

c 复制代码
ohpm i @zyl/commonlibhar
ohpm install @zyl/weibo_har
//.......
import { doWeiboShare, ShareWeiBoSdk, WeiboShareCallBack } from '@zyl/weibo_har';
import {  downloadImageWithUrlsToFile, downloadVideoWithFiles } from '@zyl/commonlibhar';
// .......
 Button('微博分享').onClick(async () => {
            try {
              const strs: string[] = await downloadImageWithUrlsToFile([
                "https://i-avatar.csdnimg.cn/72ceb7652a604f8daa327a5c2d7169e5_weixin_42301175.jpg!1",
                "https://i-blog.csdnimg.cn/direct/55a24ef3c6e1481286dc46b452316d4f.png"])
              const videoPath =  await downloadVideoWithFiles('http://47.122.120.244/dist/video.MP4')
              console.log('doWeiboShare1doWeiboSharethenpixmapUri1',videoPath)
            //  await doWeiboShare('分享的文字', strs) // 分享图片
            //  await doWeiboShare('分享的文字', [],[{videoPath:  videoPath, coverPath: strs[0]}]) // 分享视频

              const res: WeiboShareCallBack<string> = await doWeiboShare('分享的文字', strs,[
                {
                  videoPath:  videoPath,
                  coverPath: strs[0] // 视频封面
                } ])
              if (res.code === 200) {
                //成功,拿到数据
                //登录成功调用用户数据的接口
              } else if (res.code === 499) {
                // 用户取消
              } else if (res.code === 400) {
                // 登录失败
              }
            }catch (e) {
              console.log('eeeeeee',e)
            }
          })

微博登录(web登录,授权登录)

微博登录(web登录)

c 复制代码
import {  Oauth2AccessToken,UiError,WbASListener,ShareWeiBoSdk } from '@zyl/weibo_har';

 let listener: WbASListener = {
              onComplete: (token: Oauth2AccessToken) => {
                console.log('微博授权成功',token)
              },
              onError: (error: UiError) => {
                console.log('微博授权出错',error)
              },
              onCancel: () => {
                console.log('微博授权取消')
              }
            };
if (ShareWeiBoSdk.mWBAPI != null) {
  ShareWeiBoSdk.mWBAPI?.authorizeWeb(listener);
}

微博登录(客户端授权登录)

c 复制代码
import {  Oauth2AccessToken,UiError,WbASListener,ShareWeiBoSdk } from '@zyl/weibo_har';
       

        const contexts: common.UIAbilityContext = getContext(this) as common.UIAbilityContext
       Button('微博登录(客户端授权登录)').onClick(()=>{
            let listener: WbASListener = {
              onComplete: (token: Oauth2AccessToken) => {
               // 微博授权成功
              },
              onError: (error: UiError) => {
             //微博授权出错
              },
              onCancel: () => {
         //微博授权取消
              }
            };
            ShareWeiBoSdk.mWBAPI?.authorizeClient(contexts, listener);
          })

原生方法便于扩展

c 复制代码
ShareWeiBoSdk.mWBAPI
相关推荐
2501_925317139 小时前
[鸿蒙2025领航者闯关] 把小智AI装进「第二大脑」:从开箱到MCP智能体的全链路实战
人工智能·microsoft·harmonyos·鸿蒙2025领航者闯关·小智ai智能音箱·mcp开发
SmartBrain9 小时前
华为企业4A架构深度解析
华为·架构
柒儿吖9 小时前
让终端输出更美观:term_grid网格布局工具在OpenHarmony PC上的完整适配实战
harmonyos
柒儿吖10 小时前
深度实战:Rust交叉编译适配OpenHarmony PC——terminal_size完整适配案例
后端·rust·harmonyos
hh.h.10 小时前
Flutter应用嵌入鸿蒙智慧座舱数字孪生界面的实现
华为·harmonyos
白茶三许11 小时前
【江鸟中原】集光鸿蒙项目开发
pytorch·深度学习·harmonyos
zhujian8263711 小时前
二十一、【鸿蒙 NEXT】分词和汉字转拼音
华为·harmonyos·分词·汉字转拼音·分词ui卡顿
深海的鲸同学 luvi11 小时前
在鸿蒙设备上,如何启动一个真正可用的本地 Web 服务
华为·harmonyos
嗝o゚11 小时前
Flutter引擎裁剪与鸿蒙方舟编译协同优化
flutter·华为·harmonyos
嗝o゚11 小时前
跨平台硬件直连:基于Flutter+鸿蒙的轻量化IoT解决方案
物联网·flutter·harmonyos