npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

codoon-react-native-lib

v1.0.0

Published

react native通用方法封装

Downloads

9

Readme

react native通用方法封装

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

安装

npm install react-native-lib

使用

  • 导入模块
import 'react-native-lib';
或
import lib from 'react-native-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();

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','#')