@codoonfxd/crn-lib
TypeScript icon, indicating that this package has built-in type declarations

0.9.3 • Public • Published

react native 通用方法封装

react native 通用方法封装,包括:网络请求、数据缓存、NativeModules 方法封装和其他一些通用方法。

安装

# npm
npm install @codoonfxd/crn-lib -S
# yarn
yarn add @codoonfxd/crn-lib

发布新版本

发布新版本需要更改package.json中的version

在修复了 bug 或者添加了新功能之后,如果想进行发布,请按照以下步骤操作:

  1. 命令行进入crn-lib项目目录,即packages/@codoonfxd/crn-lib目录下。
  2. 执行npm run build打包。
  3. 执行npm publish即可发布成功(如果失败,请联系管理员)。

使用

  • 导入模块
// 部分引入
import { native, api, config } from '@codoonfxd/crn-lib';
// 引入所有至lib变量
import * as lib from '@codoonfxd/crn-lib';
  • 方法调用
// 网络请求
lib.api.fetch();
  • 参数说明: url: 请求 url,string,required。 method: 请求方法,string,optional (默认 post)。 signature: 是否验签 boolean, optional (默认 false)。 storagekey: 缓存 key string, optional (默认为空)。
  • 示例:
lib.api.fetch({
  url: 'http://www.baidu.com',
  method: 'post',
  signature: false,
  storagekey: 'fds'
}).then((response) => {
  if (response.status == 'OK') {
    //...
  } else {
    console.log(response.description);
  }
})
//nativeModules方法
lib.native.funcName();

//缓存方法
lib.storage.funcName();

nativeModules 属性说明

lib.native.appEventEmitter

  • 功能:获取 NativeModules.CDBridgeAppEventEmitter 类,8.1.0 版本开始支持。
  • 语法:
lib.native.appEventEmitter

nativeModules 方法使用说明

0、global.getUserViewState(暂时废弃)

  • 功能:统计用户浏览情况
  • 用法:componentDidMount 中把 gloabl.getUserViewState 指向一个同步函数,该函数返回统计离开页面的所需数据
componentDidMount () {
  const extraBUInfo = {
    match_id: 1,
    match_name: 2,
    match_type: 3,
    match_sport_type: 4,
    match_group_type: 5,
    match_level: 6
  }
  global.getUserViewState = () => {
    return {
      content_height: contentOffset + 200,   //内容高度,必须字段
      show_height: contentOffset + 200 - 50, //展示高度,必须字段
      obsolute_height: contentOffset,        //已经滑动的最大值,必须字段
      ...extraBUInfo                         //扩展数据
    }
  }
}

1、logEvent

  • 功能:统计事件
  • 语法:
lib.native.logEvent(options);
  • 参数说明:
    options:object,包括选项如下:
    eventID:统计事件 ID,string,必需。
  • 示例:
lib.native.logEvent({
    eventID: 'test_1213'
});

2、logEventWithParams

  • 功能:统计事件带参数
  • 语法:
lib.native.logEventWithParams(options);
  • 参数说明: options:object,包括选项如下:
    eventID:统计事件 ID,string,必需。
    params:统计事件参数,object,选填。
  • 示例:
lib.native.logTimedEventWithParams({
   eventID: '12322',
   params: {
       user_id:'test'
   }
})

3、logTimedEventWithParams

  • 功能:统计事件持续时间——事件开始调用方法
  • 语法:
lib.native.logTimedEventWithParams(options);
  • 参数说明: options:object,包括选项如下:
    eventID:统计事件 ID,string,必需。
    params:统计事件参数,object,选填。
  • 示例:
lib.native.logTimedEventWithParams({
   eventID: '12322',
   params: {
       user_id:'test'
   }
})

4、endTimedEventWithParams

  • 功能:统计事件持续时间——事件结束调用方法
  • 语法:
lib.native.endTimedEventWithParams(options);
  • 参数说明: options:object,包括选项如下:
    eventID:统计事件 ID,string,必需。
    params:统计事件参数,object,选填。
  • 示例:
lib.native.endTimedEventWithParams({
   eventID: '12322',
   ...params
})

5、logTimedEventWithParamsAndTag

  • 功能:统计事件持续时间,携带事件唯一标识 —— 事件开始调用
  • 语法:
lib.native.logTimedEventWithParamsAndTag(options);
  • 参数说明: options:object,包括选项如下:
    eventID:统计事件 ID,string,必需。
    params:统计事件参数,object,选填。 tag:事件唯一标识,string,必需`。
  • 示例:
lib.native.logTimedEventWithParamsAndTag ({
   eventID: '12322',
   params: {
       user_id:'test',
       user_name:'xxx'
   },
   tag:'11'
})

6、endTimedEventWithParamsAndTag

  • 功能:统计事件持续时间,携带事件唯一标识 —— 事件结束调用
  • 语法:
lib.native.endTimedEventWithParamsAndTag(options);
  • 参数说明: options:object,包括选项如下:
    eventID:统计事件 ID,string,必需。
    params:统计事件参数,object,选填。 tag:事件唯一标识,string,必需`。
  • 示例:
lib.native.endTimedEventWithParamsAndTag ({
   eventID: '12322',
   params: {
       user_id:'test',
       user_name:'xxx'
   },
   tag:'11'
})

7、miaoZhenAdAnalytics

  • 功能:秒针广告监控
  • 语法:
lib.native.miaoZhenAdAnalytics(options);
  • 参数说明: options:object,包括选项如下:
    url:'请求链接,string,必需'。
  • 示例:
lib.native.miaoZhenAdAnalytics({
   url: 'http://www.cocoon.com'
})

8、clearTrackTimer

  • 功能:清除所有事件计时器的时间计数
  • 语法:
lib.native.clearTrackTimer();

9、setLogUserProfile

  • 功能:设置当前统计客户端的用户属性
  • 语法:
lib.native.setLogUserProfile({
  name: '李蛋',
  age: '21',
  sex: '男'
});
  • 参数说明:options:object, 包含自定义的用户属性字段

10、unsetLogUserProfile

  • 功能:设置当前统计客户端的用户属性
  • 语法:
lib.native.unsetLogUserProfile('sex');
  • 参数说明:options:string, 自定义的用户属性字段名

11、deleteLogUserData

  • 功能:删除当前统计客户端的所有记录
  • 语法:
lib.native.deleteLogUserData();

12、appendUserProfile

  • 功能:删除当前统计客户端的所有记录
  • 语法:
lib.native.appendUserProfile(key, value);
  • 参数说明: key: string value: string|object|array|boolean

8、handleSchemeURL

  • 功能:页面跳转,支持咕咚自定义的跳转协议,包括跳转原生页面和浏览器页面
  • 语法:
lib.native.handleSchemeURL(options);
  • 参数说明: options:object,包括选项如下:
    url:跳转协议,string,必需。
    success:成功回调函数,function,选填。
    error:失败回调函数,function,选填。
  • 示例:
lib.native.handleSchemeURL({
   url: 'http://www.cocoon.com',
   success: function (data) {
     console.log(data);
   },
   error: function (error) {
    console.log(error);
   }
})

9、shareWithTypes

  • 功能:调用原生分享组件
  • 语法:
lib.native.shareWithTypes(options);
  • 参数说明: options:object,包括选项如下:
    types:'分享类型,array,必需',
    defaultShareInfo:'默认分享信息,object,必需',
    customShareInfo:'自定义分享信息,object,必填',
    success:'成功回调函数,function,选填',
    error:'失败回调函数,function,选填'。

"分享类型"参数说明:

0             不支持的类型
1             运动圈
2             运动团
3             微信朋友圈
4             微信好友
5             微博
6             qq
7             QQ空间
8             更多
9             复制链接

"默认分享信息"参数说明:
title:分享标题,string,必需
content:分享内容,string,必需
img_url:图片链接,string,选填
url:跳转链接,string,选填

"自定义分享信息"参数说明:

{
   "1": {
          title: '1的分享标题,string,必需',
          content: '1的分享内容,string,必需',
          img_url: '1的图片链接,string,选填',
          url: '1的跳转链接,string,选填'
    },
    "2": {
          title: '2的分享标题,string,必需',
          content: '2的分享内容,string,必需',
          img_url: '2的图片链接,string,选填',
          url: '2的跳转链接,string,选填'
    }
  ....
}
  • 示例:
lib.native.shareWithTypes({
      types: [1, 2, 3, 4],
      defaultShareInfo: {
        title: 'share title',
        content: 'share content',
      },
      customShareInfo: {
        "1": {
          title: '1 share title',
          content: '1 share content',
        }
      },
      success: function (data) {
        console.log(data);
      },
      error: function (error) {
        console.log(error)
      }
    });

10、fetchAccount

  • 功能:获取当前用户信息
  • 语法:
lib.native.fetchAccount(options);
  • 参数说明: options:object,包括选项如下:
    success:'成功回调函数,function,选填',
    error:'失败回调函数,function,选填'。
  • 示例:
lib.native.fetchAccount({
      success: function (data) {
        console.log(data);
      },
      error: function (error) {
        console.log(error)
      }
    });

11、fetchLocation

  • 功能:获取当前用户定位信息
  • 语法:
lib.native.fetchLocation(options);
  • 参数说明: options:object,包括选项如下:
    success:'成功回调函数,function,选填',
    error:'失败回调函数,function,选填'。
  • 示例:
lib.native.fetchLocation({
      success: function (data) {
        console.log(data);
      },
      error: function (error) {
        console.log(error)
      }
    });

12、relationWithUserID

  • 功能:获取用户关系
  • 语法:
lib.native.relationWithUserID(options);
  • 参数说明: options:object,包括选项如下:
    userID:被查询的用户 ID,string,必需,
    success:'成功回调函数,function,选填',
    error:'失败回调函数,function,选填'。
  • 示例:
lib.native.relationWithUserID({
      userID: 'dsdsdsf',
      success: function (data) {
        console.log(data);
      },
      error: function (error) {
        console.log(error)
      }
    });

13、synchronizeRelations

  • 功能:更新用户关系
  • 语法:
lib.native.synchronizeRelations(options);
  • 参数说明: options:object,包括选项如下:
    success:'成功回调函数,function,选填',
    error:'失败回调函数,function,选填'。
  • 示例:
lib.native.synchronizeRelations({
      success: function (data) {
        console.log(data);
      },
      error: function (error) {
        console.log(error)
      }
    });

14、initPageType

  • 功能:标记当前页面是哪一个页面,android 专用
  • 语法:
lib.native.initPageType(options);
  • 参数说明: options:object,包括选项如下:
    type:页面对应索引,number,必需。
  • 示例:
lib.native.initPageType({
    type:2
});

15、popModule

  • 功能:关闭 rn 模块
  • 语法:
lib.native.popModule();
  • 示例:
lib.native.popModule();

16、showPay(goods_id, orderExternalInfo, list)

  • 功能:根据商品 id,调用咕咚币支付弹窗
  • 参数:
    • goods_id: string, // 商品 id
    • orderExternalInfo: string // 透传参数 json 格式
    • list: Array<{ title: string, content: string, }>, // 需要在列表里展示的内容

17、showPayState(state, classType)

  • 功能:展示支付状态的弹窗,包括支付中,支付成功,支付失败三种状态。
  • 参数:
    • state: 支付状态(0 -> 支付中, 1 -> 支付成功, 2 -> 支付失败)
    • classType: 课程类型(0 -> 训练课程, 1 -> 直播课程)

Storage 方法使用说明

1、save

  • 功能:保存数据
  • 语法:
lib.storage.save(options);
  • 参数说明:
    options:object,包括选项如下:
    key:键值,string,必需。(注:不要在 key 中使用_下划线符号) , data:保存数据 object 必需。
  • 示例:
lib.storage.save({
    key: 'storagekey',
    data: data
});

2、load

  • 功能:读取数据
  • 语法:
lib.storage.load(options);
  • 参数说明:
    options:object,包括选项如下:
    key:键值,string,必需。
  • 示例:
lib.storage.load({
    key: 'storagekey'
});

3、getBatchData

  • 功能:读取批量数据
  • 语法:
lib.storage.getBatchData(options);
  • 参数说明:
    options:Array,包括选项如下:
    object: 各个缓存数据键值 必需。
  • 示例:
lib.storage.getBatchData([
  {key: "storagekey1"},
  {key: "storagekey2"},
]);

4、remove

  • 功能:删除单个数据
  • 语法:
lib.storage.remove(options);
  • 参数说明:
    options:Object
    key: 键值,string,必需。
  • 示例:
lib.storage.remove({
  key: "storagekey"
});

其他通用方法使用说明

1、px2dp

  • 功能:px 转换为 dp,parseInt for android bug
  • 语法:
lib.utils.px2dp(px);
  • 参数说明:
    px:要转换的 px 长度值,number,必需。
  • 示例:
lib.utils.px2dp(10)

2、stringToJson

  • 功能:非 object 对象转换为 json 对象
  • 语法:
lib.utils.stringToJson(item);
  • 参数说明:
    item:要转换非 object 数据,非 object 类型,必需。
  • 示例:
lib.utils.stringToJson('[1,2,3]')

3、dynamicMargin

  • 功能:动态调整 margin:给列表中第一项设置 marginLeft,最后一项设置 marginRight,其他项不做处理
  • 语法:
lib.utils.dynamicMargin(total, index, value);
  • 参数说明:
    total:列表总项数,number,必需。
    index:列表当前项索引,number,必需。
    value:需要调整的 margin 值,number,选填,默认值为 16。
  • 示例:
lib.utils.dynamicMargin(4,0)

4、compareWithVersion

  • 功能:判断客户端当前版本是否大于等于指定版本,果客户端当前版本>=miniVersion,返回 true;否则返回 false。
  • 语法:
lib.utils.compareWithVersion(miniVersion);
  • 参数说明:
    miniVersion:指定的版本号,string,必需。
  • 示例:
lib.utils.compareWithVersion('8.8.0')

5、getQueryStr

  • 功能:获取 url 参数
  • 语法:
lib.utils.getQueryStr(url, separator)
  • 参数说明:
    url:需要获取的 URL,string,必填
    separator:URL 中参数和链接之间的分隔符,string,选填,默认为"?"
  • 示例:
lib.utils.getQueryStr('https://www.npmjs.com/package/url-parse');//{}

//返回值为:{name: "xiaoma", sex: "female"}
lib.utils.getQueryStr('https://www.npmjs.com/package/url-parse?name=xiaoma&sex=female');

//返回值为:{name: "xiaoma", sex: "female"}
lib.utils.getQueryStr('https://www.npmjs.com/package/url-parse#name=xiaoma&sex=female','#')

Package Sidebar

Install

npm i @codoonfxd/crn-lib

Weekly Downloads

4

Version

0.9.3

License

ISC

Unpacked Size

87.7 kB

Total Files

10

Last publish

Collaborators

  • alexmeey
  • jerryshen520
  • sofichael