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

news2025/4/25 16:08:00

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使用

🌞下载安装

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 配置文件修改

  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()

const flag = checkWeiBoApp() // 布尔值

微博分享

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

doWeiboShare

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

doWeiboShare(text, [this.pixmapUri])

分享类完整分享代码

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

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


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登录)

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);
}

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

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);
          })

原生方法便于扩展

ShareWeiBoSdk.mWBAPI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL数据库入门到精通-06 DCL操作】

一、DCL DCL英文全称是Data Control Language(数据控制语言)&#xff0c;用来管理数据库用户、控制数据库的访 问权限。 二、管理用户 1.查询与创建用户 代码如下&#xff08;示例&#xff09;&#xff1a; -- DCL 管理用户 -- 1.查询用户 use mysql; select *from user;-…

无感字符编码原址转换术——系统内存(Mermaid文本图表版/DeepSeek)

安全便捷无依赖&#xff0c;不学就会无感觉。 笔记模板由python脚本于2025-04-24 20:00:05创建&#xff0c;本篇笔记适合正在研究字符串编码制式的coder翻阅。 学习的细节是欢悦的历程 博客的核心价值&#xff1a;在于输出思考与经验&#xff0c;而不仅仅是知识的简单复述。 P…

第七部分:向量数据库和索引策略

什么是矢量数据库&#xff1f; 简单来说&#xff0c;向量数据库是一种专门化的数据库&#xff0c;旨在优化存储和检索以高维向量形式表示的文本。 为什么这些数据库对RAG至关重要&#xff1f;因为向量表示能够在大规模文档库中进行高效的基于相似性的搜索&#xff0c;根据用户…

查看MAC 地址以及简单了解

MAC地址 简介 MAC 地址&#xff08;Media Access Control Address&#xff09;&#xff0c;直译为媒体访问控制地址&#xff0c;又称局域网地址&#xff08;LAN Address&#xff09;、MAC 地址、以太网地址&#xff08;Ethernet Address&#xff09;、硬件地址&#xff08;Ha…

《100天精通Python——基础篇 2025 第2天:Python解释器安装与基础语法入门》

目录 一、Windows安装Python1.1 下载并安装 Python1.2 测试安装是否成功 二、Linux系统安装Python(新手可以跳过)2.1 基于RockyLinux系统安装Python(编译安装)2.2 基于Ubuntu系统安装Python(编译安装)2.3 macOS 安装python解释器 三、如何运行Python程序&#xff1f;3.1 Python…

MyBatis 和 MyBatis-Plus 在 Spring Boot 中的配置、功能对比及 SQL 日志输出的详细说明,重点对比日志输出的配置差异

以下是 MyBatis 和 MyBatis-Plus 在 Spring Boot 中的配置、功能对比及 SQL 日志输出的详细说明&#xff0c;重点对比日志输出的配置差异&#xff1a; 1. MyBatis 和 MyBatis-Plus 核心对比 特性MyBatisMyBatis-Plus定位基础持久层框架MyBatis 的增强版&#xff0c;提供代码生…

动手试一试 Spring Boot默认缓存管理

1.准备数据 使用之前创建的springbootdata的数据库&#xff0c;该数据库有两个表t_article和t_comment&#xff0c;这两个表预先插入几条测试数据。 2.编写数据库表对应的实体类 Entity(name "t_comment") public class Comment {IdGeneratedValue(strategy Gener…

Opencv图像处理:旋转、打包、多图像匹配

文章目录 一、图像的旋转1、使用numpy方法实现旋转1&#xff09;顺时针旋转90度2&#xff09;逆时针旋转90度 2、使用opencv的方法实现图像旋转1&#xff09;顺时针旋转90度2&#xff09;逆时针旋转90度3&#xff09;旋转180度 3、效果 二、多图像匹配1、模板2、匹配对象3、代码…

BOM与DOM(解疑document window关系)

BOM&#xff08;浏览器对象模型&#xff09; 定义与作用 BOM&#xff08;Browser Object Model&#xff09;提供与浏览器窗口交互的接口&#xff0c;用于控制导航、窗口尺寸、历史记录等浏览器行为 window&#xff1a;浏览器窗口的顶层对象&#xff0c;包含全局属性和方法&am…

数据仓库建设全解析!

目录 一、数据仓库建设的重要性 1. 整合企业数据资源 2. 支持企业决策制定 3. 提升企业竞争力 二、数据仓库建设的前期准备 1. 明确业务需求 2. 评估数据源 3. 制定项目计划 三、数据仓库建设的具体流程 1.需求分析​ 2.架构设计​ 3.数据建模​ 4.ETL 开发​ 5.…

时序约束 记录

一、基础知识 1、fpga的约束文件为.fdc&#xff0c;synopsys的约束文件为.sdc。想通过fpga验证soc设计是否正确&#xff0c;可以通过syn工具(synplify)吃.fdc把soc code 转换成netlist。然后vivado P&R工具通过吃上述netlist、XDC 出pin脚约束、fdc时序约束三个约束来完成…

基于SpringBoot的在线抽奖系统测试用例报告

一、项目背景 在线抽奖系统采用前后端分离的方法来实现&#xff0c;同时使用了数据库来存储相关的数据&#xff0c;redis来缓存验证码&#xff0c;RabbitMQ来缓存信息队列&#xff0c;同时将其部署到云服务器上。前端主要有登录页、后台管理页、活动列表页&#xff0c;抽奖页等…

26考研|数学分析:数项级数

数项级数这一章的开始&#xff0c;开启了新的关于“级数”这一新的概念体系的学习进程&#xff0c;此部分共包含四章的内容&#xff0c;分别为数项级数、函数项级数、幂级数以及傅里叶级数。这一章中&#xff0c;首先要掌握级数的相关概念与定义&#xff0c;重难点在于掌握判断…

likeadmin前端请求地址配置踩坑

likeadmin前端本地调试执行步骤 第一步&#xff1a;npm i 安装项目所有依赖 第二步&#xff1a;npm run dev 启动 报错&#xff0c;发送的请求没通&#xff0c;很显然请求的地址不存在 第三步&#xff1a;查找接口请求地址 配置 根目录下有个.env.production.example 文件…

计算机视觉——速度与精度的完美结合的实时目标检测算法RF-DETR详解

概述 目标检测已经取得了长足的发展&#xff0c;尤其是随着基于 Transformer 的模型的兴起。RF-DETR&#xff0c;由 Roboflow 开发&#xff0c;就是这样一种模型&#xff0c;它兼顾了速度和精度。使用 Roboflow 的工具可以让整个过程变得更加轻松。他们的平台涵盖了从上传和标…

系统思考:技术与产品协同

在《第五项修炼》中&#xff0c;彼得圣吉指出&#xff1a;组织中最根本的问题&#xff0c;往往不是个别人的能力&#xff0c;而是思维的局限和系统之间的断裂。我最近要给一家互联网公司交付系统思考的项目&#xff0c;客户希望技术和产品的管理者一起参加&#xff0c;也问我&a…

面试之消息队列

消息队列场景 什么是消息队列&#xff1f; 消息队列是一个使用队列来通信的组件&#xff0c;它的本质就是个转发器&#xff0c;包含发消息、存消息、消费消息。 消息队列怎么选型&#xff1f; 特性ActiveMQRabbitMQRocketMQKafka单机吞吐量万级万级10万级10万级时效性毫秒级…

通过阿里云Milvus与通义千问VL大模型,快速实现多模态搜索

本文主要演示了如何使用阿里云向量检索服务Milvus版与通义千问VL大模型&#xff0c;提取图片特征&#xff0c;并使用多模态Embedding模型&#xff0c;快速实现多模态搜索。 基于灵积&#xff08;Dashscope&#xff09;模型服务上的通义千问 API以及Embedding API来接入图片、文…

使用 Spring Boot Admin 通过图形界面查看应用配置信息的完整配置详解,包含代码示例和注释,最后以表格总结关键配置

以下是使用 Spring Boot Admin 通过图形界面查看应用配置信息的完整配置详解&#xff0c;包含代码示例和注释&#xff0c;最后以表格总结关键配置&#xff1a; 1. 环境准备 Spring Boot 版本&#xff1a;2.7.x&#xff08;兼容 Spring Boot Admin 2.x&#xff09;Spring Boot…

【计算机视觉】CV实战项目 - 基于YOLOv5与DeepSORT的智能交通监控系统:原理、实战与优化

基于YOLOv5与DeepSORT的智能交通监控系统&#xff1a;原理、实战与优化 一、项目架构与技术解析1.1 核心算法架构1.2 学术基础 二、实战环境配置2.1 硬件要求与系统配置2.2 分步安装指南 三、核心功能实战3.1 基础车辆计数3.2 自定义检测类别3.3 多区域计数配置 四、性能优化技…