weiboPlus

论坛示例

为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

微博是一个由新浪网推出,提供微型博客服务类的社交网站。用户可以通过网页、WAP页面、手机客户端、手机短信、彩信发布消息或上传图片。新浪可以把微博理解为“微型博客”或者“一句话博客”。用户可以将看到的、听到的、想到的事情写成一句话,或发一张图片,通过电脑或者手机随时随地分享给朋友,一起分享、讨论;还可以关注朋友,即时看到朋友们发布的信息。

原生插件概述

weiboPlus 封装了新浪微博开放平台的移动端 SDK,使用此原生插件可实现新浪微博授权登录,获取用户信息,分享文本、图片、音频、视频、网页等信息到微博移动客户端的功能。登陆授权时,原生插件内部会先判断当前设备是否安装微博客户端,若没安装则弹出网页版登陆页面,若已安装则跳转到微博客户端提示用户登陆授权。

开发者使用本原生插件之前须从新浪微博开放平台申请微博开发者账号,微博开发者账号申请成功后需要填写相应信息创建一个app应用,从而获取 App Key。注意:新浪微博服务器不允许在短时间内连续发布两条相同内容的微博,测试时如果连续发送两条内容相同的微博,后者可能不显示。weiboPlus 原生插件是 weibo 原生插件的升级版。

原生插件使用攻略

使用此原生插件之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:weiboPlus
  • 参数:urlScheme、apiKey、registUrl
  • 配置示例:
 <feature name="weiboPlus">
   <param name="urlScheme" value="wb1132217156" />
   <param name="apiKey" value="1132217156" />
   <param name="registUrl" value="http://developer.yonyou.com" />
   <param name="universalLink" value="https://developer.yonyou.com"/>
 </feature>
  • 字段描述:

    urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动新浪微博客户端,也可以从新浪微博客户端跳回本应用。urlScheme 的 value 值是从新浪微博开放平台获取到的 App Key 拼接前缀 wb 而成的。

    apiKey:从新浪微博开放平台获取的 App Key。

    registUrl:在新浪微博开放平台创建应用时(应用信息 -> 高级信息 -> 授权设置)自定义填写的回调 url。

    **universalLink**: 新浪微博 Universal Link。详情参考 [苹果文档](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content)
    

针对 iOS 平台配置:

  1. iOS 平台上添加白名单,如下:
 <preference name="querySchemes" value="sinaweibohd,sinaweibo,weibosdk,weibosdk2.5, weibosdk3.3" />
  1. 创建 entitlements 文件,Yonbuilder 移动开发平台上的开发者,可通过此文件告诉编译服务器开通 Associated Domain 功能。配置方法参考论坛帖子。配置示例如下:

        <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
        <plist version="1.0">
        <dict>
            <key>com.apple.developer.associated-domains</key>
            <array>
                <string>applinks:developer.yonyou.com</string>
            </array>
        </dict>
        </plist>
    

    其中 com.apple.developer.associated-domains 对应的值applinks:developer.yonyou.com 是配置的你的应用的 Universal Links。

3.开通 Associated Domains。 登录苹果开发者账号,在左侧列表里找到 Identifiers,选中后再找到你的 Bundle ID (包名),选中该包名,配置开启其 Associated Domains 功能。如下下图所示:

illustration

4.服务器端支持苹果 Universal Links。支持方法参考 论坛帖子

微博 apiKey 申请参考微博平台接入指南

原生插件接口

检测universalLink是否有效,仅IOS支持

checkUniversalLink(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型; 
    msg:
    step:        //数字类型;检测的步骤
                    0, //默认
                    1, //参数检查
                    2, //当前系统版本检查
                    3, //微博客户端版本检查
                    4, //微博SDK内部操作检查
                    5, //App拉起微博检查
                    6, //由微博返回当前App检查
                    7 //最终检查,也代表检测结果合法有效
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.checkUniversalLink(function(ret, err) {
    if (ret.status) {
        alert('成功');
    }
}); 

可用性

iOS系统

可提供的1.0.0及更高版本

shareText

分享文本内容

shareText({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪开放平台申请的 App Key ,若不传则从当前 widget 的 config.xml 文件读取,安卓系统中在1.0.9版本中不需要设置该参数

text:

  • 类型:字符串
  • 描述:分享的文本,长度小于140个汉字

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型;
                   //错误码:
                   //-1 (apiKey值非法)
                   //1 (用户取消)
                   //2 (发送失败)
                   //3 (授权失败)
                   //4 (不支持的请求)
                   //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.shareText({
    text: '这里是测试的内容',
}, function(ret, err) {
    if (ret.status) {
        alert('分享文本内容成功');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

shareImage

分享图片内容

shareImage({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪开放平台申请的 App Key ,若不传则从当前 widget 的 config.xml 文件读取,在安卓系统中1.0.9版本中不需要设置该参数

text:

  • 类型:字符串
  • 描述:(可选项)分享的文本,长度小于140个汉字

imageUrl:

  • 类型:字符串
  • 描述:分享的图片路径,要求本地路径(fs://、widget://),大小不能超过10M

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型;
                   //错误码:
                   //-2 (imageUrl图片资源未找到)
                   //-1 (apiKey值非法)
                   //1 (用户取消)
                   //2 (发送失败)
                   //3 (授权失败)
                   //4 (不支持的请求)
                   //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.shareImage({
    text: '这里是测试的内容',
    imageUrl: 'widget://image/xxx.png'
}, function(ret, err) {
    if (ret.status) {
        alert('分享图片内容成功');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

shareVideo

分享本地视频资源(需要微博7.8.0 以及以后客户端支持)

shareVideo({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪开放平台申请的 App Key ,若不传则从当前 widget 的 config.xml 文件读取,在安卓系统中1.0.9版本中不需要设置该参数

text:

  • 类型:字符串
  • 描述:分享的文本,长度小于140个汉字

contentUrl:

  • 类型:字符串
  • 描述:分享本地视频的本地路径(fs://、widget://),在1.0.9版本中只支持fs://的路径写法

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型;
                   //错误码:
                   //-1 ( apiKey 值非法)
                   //1 (用户取消)
                   //2 (发送失败)
                   //3 (授权失败)
                   //4 (不支持的请求)
                   //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.shareVideo({
    text: '这里是测试的内容',
      contentUrl: 'widget://res/yonbuilder.mp4'
}, function(ret, err) {
    if (ret.status) {
        alert('分享成功');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

shareWebPage

分享网页

shareWebPage({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪开放平台申请的 App Key ,若不传则从当前 widget 的 config.xml 文件读取,在安卓系统中1.0.9版本中不需要设置该参数

text:

  • 类型:字符串
  • 描述:(可选项)分享的文本,长度小于140个汉字

title:

  • 类型:字符串
  • 描述:分享网页的标题,不能为空且长度小于1k

description:

  • 类型:字符串
  • 描述:(可选项)分享网页的描述,长度小于1k

thumb:

  • 类型:字符串
  • 描述:分享网页的缩略图地址,要求本地路径(fs://、widget://),大小小于32k

contentUrl:

  • 类型:字符串
  • 描述:分享网页的 url 地址,不能为空且长度不能超过255

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型;
                   //错误码:
                   //-1 ( apiKey 值非法)
                   //1 (用户取消)
                   //2 (发送失败)
                   //3 (授权失败)
                   //4 (不支持的请求)
                   //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.shareWebPage({
    text: '这里是测试的内容',
    title: '测试标题',
    description: '分享内容的描述',
    thumb: 'widget://a.jpg',
    contentUrl: 'http://developer.yonyou.com'
}, function(ret, err) {
    if (ret.status) {
        alert('分享成功');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

auth

授权登录(用于实现第三方登录

auth({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪微博开放平台申请的 App Key,若不传则从当前 widget 的 config.xml 中读取,不传或传入错误的 apiKey,则无法打开新浪微博进行登录,在1.0.9版本中不需要设置该参数。

registUrl:

  • 类型:字符串
  • 描述:(可选项)在新浪微博开放平台创建应用时(应用信息 -> 高级信息 -> 授权设置)自定义填写的回调 url,若为空则从当前 widget 的 config.xml 中读取,在1.0.9版本中不需要设置该参数

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,  //布尔型;true||false
    token: '',     //字符串类型;从新浪微博服务器获取的 accessToken,接口调用凭证,传给 getUserInfo 接口获取用户信息
    expire: '',    //字符串类型:token 有效期(时间戳)
    userId: ''     //字符串类型;从新浪微博服务器获取的 userId,新浪微博分配的用户id,传给 getUserInfo 接口获取用户信息
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1     //数字类型;错误码
                //取值范围:
                //-1(apiKey 或 registUrl 值非法)
                //1(用户取消)
                //2 (发送失败)
                //3 (授权失败)
                //4 (不支持的请求)
                //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.auth(function(ret, err) {
    if (ret.status) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelAuth

取消授权,退出登录状态

cancelAuth(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1     //数字类型;错误码
                //取值范围:
                //1(尚未登录)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.cancelAuth(function(ret, err) {
    if (ret.status) {
        api.alert({ msg: '登出成功' });
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本,在安卓系统中1.0.9版本该方法已废弃

getUserInfo

获取用户账户信息,调用本接口前,需要先调用 auth 接口授权

getUserInfo({params}, callback(ret, err))

params

token:

  • 类型:字符串
  • 描述:(可选项)登录账号获取的token值
  • 默认值:当前已登录账号的 token

userId:

  • 类型:字符串
  • 描述:(可选项)登录账号获取的 userId
  • 默认值:当前已登录账号的 userId

callback(ret, err)

ret:

{
     status: true,        //布尔型;true||false
     userInfo: {}         //JSON对象;获取的用户信息(微博返回)
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1              //数字类型:错误码
                         //取值范围:
                         //-1 (token 或 userId 非法)
                         //1 (网络超时)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.getUserInfo({
    token: '',
    userId: ''
}, function(ret, err) {
    if (ret.status) {
        alert(JSON.stringify(ret.userInfo));
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本,在安卓系统中1.0.9版本不支持该方法

isInstalled

判断是否已安装新浪微博客户端

isInstalled({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪微博开放平台申请的 App Key,若不传则从当前 widget 的 config.xml 中读取,不传或传入错误的 apiKey,则无法判断是否已安装新浪微博客户端,在安卓系统中1.0.9版本中不需要设置该参数

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
     status: true,        //布尔型;true||false
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.isInstalled(
    function(ret) {
        if (ret.status) {
            alert('已安装新浪微博客户端');
        } else {
            alert('未安装新浪微博客户端');
        }
    }
);

可用性

Android系统,iOS系统

可提供的1.0.0及更高版本

shareMulitImage

分享多图

shareMulitImage({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪开放平台申请的 App Key ,若不传则从当前 widget 的 config.xml 文件读取,在安卓系统中1.0.9版本中不需要设置该参数

text:

  • 类型:字符串
  • 描述:(可选项)分享的文本,长度小于140个汉字

mulitImage:

  • 类型:字符数组
  • 描述:图片本地地址集合,只能分享本地图片,支持widget路径、fs路径

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型;
                   //错误码:
                   //-2 (图片资源未找到)(iOS支持)
                   //-1 ( apiKey 值非法)
                   //1 (用户取消)
                   //2 (发送失败)
                   //3 (授权失败)(iOS支持)
                   //4 (不支持的请求)(iOS支持)
                   //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.shareMulitImage({
    text: 'shareMulitImageText',
    multiImage:['widget://image/api1.png','widget://image/api2.png','widget://image/api3.png','widget://image/api4.png','widget://image/api6.png']
}, function(ret, err) {
    if (ret.status) {
        alert('分享成功');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

shareStory

分享微博故事

shareStory({params}, callback(ret, err))

params

apiKey:

  • 类型:字符串
  • 描述:(可选项)从新浪开放平台申请的 App Key ,若不传则从当前 widget 的 config.xml 文件读取

image:

  • 类型:字符串
  • 描述:分享图片地址,要求本地路径(fs://、widget://)(与video 二选一,都存在优先image)

video:

  • 类型:字符串
  • 描述:分享视频的地址,要求本地路径(fs://、widget://)(与image 二选一,都存在优先image)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 1        //数字类型;
                   //错误码:
                   //-2 (图片或视频资源未找到)(iOS支持)
                   //-1 ( apiKey 值非法)
                   //1 (用户取消)
                   //2 (发送失败)
                   //3 (授权失败)(iOS支持)
                   //4 (不支持的请求)(iOS支持)
                   //5 (未知错误)
}

示例代码

var weiboPlus= api.require('weiboPlus');
weiboPlus.shareStory({
    video:'widget://res/yonbuilder.mp4'
    }, function(ret, err) {
    if (ret.status) {
        alert('分享成功');
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本,在安卓系统中1.0.9版本该方法已废弃

论坛示例

为帮助用户更好更快的使用原生插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24