haierUserCenter

来自于:APICloud 官方>

基础类

概述

本模块封装了海尔的用户中心SDK-IOS V3_0

环境要求

支持 iOS7.0及以上的系统版本

准备

1,http 请求配置:

由于iOS9引入了 AppTransportSecurity(ATS)特性,要求 App 访问的网络使用 HTTPS 协议,如果不做特殊设置,http 请求会失败,所以需要开发者在 Info.plist 中增加如下字段:

  < key>NSAppTransportSecurity< /key>
   < dict>
        < key>NSAllowsArbitraryLoads< /key>
        < true/>
   < /dict>

info.plist 文件配置方法,参考 APICloud 官方论坛帖子

2,设置 SSO 的白名单

由于需要跳转到认证服务器来获取授权码,之后再跳转回 APP,所以需要设置白名单,设置如下:

 <key>LSApplicationQueriesSchemes</key>
  <array>
          <!--URL Scheme    -->
          <string>HaierSSOSDK</string>
          <string>HaierMaster</string>
  </array>

在 APICloud 平台上设置白名单方法是在 config.xml 文件内设置如下代码:

//多个值之间用英文逗号隔开
<preference name="querySchemes" value="weixin,sinaweibo" />

详情参考 APICloud 官方文档-----config 配置可被检测的 URL

使用此模块之前必须先配置 config.xml 文件,配置方法如下:

  • 名称:haierUserCenter
  • 参数:ios_api_key
  • 配置示例:
  <feature name="haierUserCenter">
    <param name="urlScheme" value="haierwantou"/>
    <param name="registerAppId" value="wantou"/>
    <param name="appSecret" value="secret"/>
    <param name="oauthURL" value="http://taccount.haier.com"/>
    <param name="baseURL" value="http://taccount.haier.com"/>
    <param name="uhomeAppId" value="MB-RSQCSAPP-0000"/>
    <param name="uhomeType" value="type_uhome_common_token"/>
    <param name="uhomeClientId" value="123456"/>
    <param name="uhomeSign" value="76dfe3686b3251a223e458db5445711447e967b48504f87c09c4b12dbee21943"/>
    <param name="HUCSDKEnv" value="test"/>
  </feature>
  • 字段描述:

    urlScheme:用于实现应用间跳转及数据交换。urlScheme 的 value 值格式被限定为:haier+'自定义名称' registerAppId:注册 appid appSecret:密钥 oauthURL:授权url baseURL:基础url uhomeAppId:uhome的appid uhomeType:uhome的type uhomeSign:uhome的签名字符串 HUCSDKEnv:生成环境,取值范围:test(开发环境);release(发布环境)

模块接口

oauth2

该方式是基于 OAuth 2.0 的授权码模式(authorization code),当调用了接口后会内部打开一个 webView 加载的授权页面,然后进行授权

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

params

theme:

  • 类型:字符串
  • 描述:(可选项)自定义颜色,注意:不得包含 ‘#’,请直接输入 16进制颜色,如:‘111111’
  • 默认:123456

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,            //布尔类型;是否登录成功,true||false
    accessToken: '',        //字符串类型;
    tokenType: '',          //字符串类型;
    uhomeAccessToken: '',   //字符串类型;
    refreshToken: '',       //字符串类型;
    expires: ,              //数字类型;
    creatTime:              //数字类型;
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    error: '',          //字符串类型;
    errorMessage: '',   //字符串类型;
    captcha_token: '',  //字符串类型;
    captcha_image: ''   //字符串类型;
}

示例代码

var haier = api.require('haierUserCenter');
haier.oauth2({
    theme:'ff0000'
},function(ret) {
    if (ret.status) {
        alert('登录成功');
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

scanLoginWithQRCodeURL

调用扫描相关模块扫描二维码或者条码,得到code(字符串)然后传给本接口登录

scanLoginWithQRCodeURL({params},callback(ret))

params

code:

  • 类型:字符串
  • 描述:扫码后得到的code

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    success: true,            //布尔类型;是否登录成功,true||false
    rescan: '',             //布尔类型;是否需要重扫,true||false
    message: ''             //字符串类型;错误信息
}

示例代码

var haier = api.require('haierUserCenter');
haier.scanLoginWithQRCodeURL({
    code:'ff0000'
},function(ret) {
    if (ret.success) {
        alert('登录成功');
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

userMessage

获取用户信息

userMessage(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,            //布尔类型;是否获取成功,true||false
    userMessage: '',        //字符串类型;
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    error: '',          //字符串类型;
    errorMessage: '',   //字符串类型;
    captcha_token: '',  //字符串类型;
    captcha_image: ''   //字符串类型;
}

示例代码

var haier = api.require('haierUserCenter');
haier.userMessage(function(ret) {
    if (ret.status) {
        alert('获取成功');
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本

unchainAuthorization

登出,清理数据

unchainAuthorization()

示例代码

var haier = api.require('haierUserCenter');
haier.unchainAuthorization();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

refreshToken

刷新token

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

params

refreshToken:

  • 类型:字符串
  • 描述:刷新token

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,            //布尔类型;是否刷新成功,true||false
    accessToken: '',        //字符串类型;
    tokenType: '',          //字符串类型;
    uhomeAccessToken: '',   //字符串类型;
    refreshToken: '',       //字符串类型;
    expires: ,              //数字类型;
    creatTime:              //数字类型;
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    error: '',          //字符串类型;
    errorMessage: '',   //字符串类型;
    captcha_token: '',  //字符串类型;
    captcha_image: ''   //字符串类型;
}

示例代码

var haier = api.require('haierUserCenter');
haier.refreshToken({
    refreshToken:'ff0000'
},function(ret) {
    if (ret.status) {
        alert('刷新成功');
    }
});

可用性

iOS系统

可提供的1.0.0及更高版本