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