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 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-native-dl-bmkit

v1.0.88

Published

给RN做的基础组件库

Readme

react-native-bmkit

安装

1.安装包

$ npm install react-native-bmkit --save

$ react-native link

2.iOS 配置

2.1 安装ios依赖包

cd ios && pod install

2.2 配置高德地图key

  [AMapServices sharedServices].apiKey = @"3193f87ffdedbf5ef545a0831fe4fea4";

2.3 配置三方SSO白名单

在info.plist中

<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>wechat</string>
		<string>weixin</string>
		<string>weixinULAPI</string>
		<string>sinaweibohd</string>
		<string>sinaweibo</string>
		<string>sinaweibosso</string>
		<string>weibosdk</string>
		<string>weibosdk2.5</string>
		<string>mqqopensdklaunchminiapp</string>
		<string>mqqopensdkminiapp</string>
		<string>mqqapi</string>
		<string>mqq</string>
		<string>mqqOpensdkSSoLogin</string>
		<string>mqqconnect</string>
		<string>mqqopensdkdataline</string>
		<string>mqqopensdkgrouptribeshare</string>
		<string>mqqopensdkfriend</string>
		<string>mqqopensdkapi</string>
		<string>mqqopensdkapiV2</string>
		<string>mqqopensdkapiV3</string>
		<string>mqqopensdkapiV4</string>
		<string>mqzoneopensdk</string>
		<string>wtloginmqq</string>
		<string>wtloginmqq2</string>
		<string>mqqwpa</string>
		<string>mqzone</string>
		<string>mqzonev2</string>
		<string>mqzoneshare</string>
		<string>wtloginqzone</string>
		<string>mqzonewx</string>
		<string>mqzoneopensdkapiV2</string>
		<string>mqzoneopensdkapi19</string>
		<string>mqzoneopensdkapi</string>
		<string>mqqbrowser</string>
		<string>mttbrowser</string>
		<string>tim</string>
		<string>timapi</string>
		<string>timopensdkfriend</string>
		<string>timwpa</string>
		<string>timgamebindinggroup</string>
		<string>timapiwallet</string>
		<string>timOpensdkSSoLogin</string>
		<string>wtlogintim</string>
		<string>timopensdkgrouptribeshare</string>
		<string>timopensdkapiV4</string>
		<string>timgamebindinggroup</string>
		<string>timopensdkdataline</string>
		<string>wtlogintimV1</string>
		<string>timapiV1</string>
		<string>alipay</string>
		<string>alipayshare</string>
		<string>dingtalk</string>
		<string>dingtalk-open</string>
		<string>linkedin</string>
		<string>linkedin-sdk2</string>
		<string>linkedin-sdk</string>
		<string>laiwangsso</string>
		<string>yixin</string>
		<string>yixinopenapi</string>
		<string>instagram</string>
		<string>whatsapp</string>
		<string>line</string>
		<string>fbapi</string>
		<string>fb-messenger-api</string>
		<string>fb-messenger-share-api</string>
		<string>fbauth2</string>
		<string>fbshareextension</string>
		<string>kakaofa63a0b2356e923f3edd6512d531f546</string>
		<string>kakaokompassauth</string>
		<string>storykompassauth</string>
		<string>kakaolink</string>
		<string>kakaotalk-4.5.0</string>
		<string>kakaostory-2.9.0</string>
		<string>pinterestsdk.v1</string>
		<string>tumblr</string>
		<string>evernote</string>
		<string>en</string>
		<string>enx</string>
		<string>evernotecid</string>
		<string>evernotemsg</string>
		<string>youdaonote</string>
		<string>ynotedictfav</string>
		<string>com.youdao.note.todayViewNote</string>
		<string>ynotesharesdk</string>
		<string>gplus</string>
		<string>pocket</string>
		<string>readitlater</string>
		<string>pocket-oauth-v1</string>
		<string>fb131450656879143</string>
		<string>en-readitlater-5776</string>
		<string>com.ideashower.ReadItLaterPro3</string>
		<string>com.ideashower.ReadItLaterPro</string>
		<string>com.ideashower.ReadItLaterProAlpha</string>
		<string>com.ideashower.ReadItLaterProEnterprise</string>
		<string>vk</string>
		<string>vk-share</string>
		<string>vkauthorize</string>
		<string>twitter</string>
		<string>twitterauth</string>
	</array>

2.4 配置URL Scheme

添加URL Types可工程设置面板设置

2.5 设置系统回调


#import "WXPay.h"
#import "AliPay.h"
#import <AMapFoundationKit/AMapFoundationKit.h>
#import <react-native-bmkit/UmShare.h>

/// app跳转 系统回调
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
    //6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
    BOOL result = [UmShare handleOpenURL:url options:options];
  
    if (!result) {
        //  =========    其他如支付等SDK的回调    ==========
      
      //  微信支付或者微信登录
      if ([url.scheme isEqualToString:@"wx8b59b491e0e2168c"]) {
        return [WXPay applicationOpenUrl:url];
      }
      
      //  支付宝支付
       if ([url.host isEqualToString:@"safepay"]) {
         return [AliPay applicationOpenUrl:url];
       }
    }
    return result;
}


/// Universal Links系统回调
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{
  
  BOOL result = [UmShare handleUniversalLink:userActivity options:nil];
  if (!result) {
    // 其他SDK的回调
  }
  return YES;
}


- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
  if (![deviceToken isKindOfClass:[NSData class]]) return;
     const unsigned *tokenBytes = (const unsigned *)[deviceToken bytes];
     NSString *hexToken = [NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
                           ntohl(tokenBytes[0]), ntohl(tokenBytes[1]), ntohl(tokenBytes[2]),
                           ntohl(tokenBytes[3]), ntohl(tokenBytes[4]), ntohl(tokenBytes[5]),
                           ntohl(tokenBytes[6]), ntohl(tokenBytes[7])];
     NSLog(@"deviceToken:%@",hexToken);
}

3.Android 配置

3.1 添加一个微信库

dependencies {
	...
	implementation  'com.umeng.umsdk:share-wx:7.0.2'
}

3.2 添加WXEntryActivity

在包名下面添加wxapi文件夹,并创建WXEntryActivity.java
package com.bm001.arena.wxapi;

import com.reactlibrary.pay.BMWXEntryActivity;
import com.reactlibrary.pay.PayManager;
import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.umeng.socialize.weixin.view.WXCallbackActivity;

import static com.tencent.mm.opensdk.constants.ConstantsAPI.COMMAND_PAY_BY_WX;

public class WXEntryActivity extends WXCallbackActivity {

    @Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == COMMAND_PAY_BY_WX) {
            //			支付
            PayManager.module.wxPayResuly(resp);
        } else {
            super.onResp(resp);//一定要加super,实现我们的方法,否则不能回调
        }
    }
}

3.3 在MainApplication的onCreate方法中初始化友盟

//        给友盟传入application
UmCommon.setApp(this);
//        初始化友盟推送 
UmPush.register(this,友盟key,渠道,推送secret);

3.4 在MainActivity 的onCreate中给友盟设置activity

UmCommon.setActivity(this);

3.5 在MainActivity 添加onActivityResult回调

// QQ与新浪不需要添加Activity,但需要在使用QQ分享或者授权的Activity中,添加:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  UmShare.onActivityResult(requestCode, resultCode, data);
}

3.6 在Manifest.xml 中添加高德appkey,华为appid,微信activity

<meta-data
    android:name="com.huawei.hms.client.appid"
    android:value="100542461"/>

<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="b1d89a8dd1422ccd761bdf3ccff680b4" />
<!--微信-->
<activity
    android:name="com.bm001.arena.wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

4 RN配置

4.1 初始化kit配置

initialConfig({
	// 基础url
    apiHost: 'https://gatewaytest.bm001.com',
    // token
    token: '',
    // json
    jwtJson: { mainShopCode: 'V00888', shopType: '1', userCode: 'B0005088', 						shopCode: 'V00888', userType: '3', userId: 'B0005088' },
    // 高德webApi的KEY
    mapApiKey: '1dca7e6dff6f89fcd86ed660435c8891'
  })

4.2 设置友盟key,三方平台的key,以及注册通知

common.initWithAppkey('59ee97488f4a9d1b8a000010', 'ios', true, '')

share.initUniversalLink('https://m.bm001.com/')
share.initPlaform({
  type: share.PlatformType.UMSocialPlatformType_WechatSession,
  appkey: 'wx8b59b491e0e2168c',
  appSecret: '93e2b6099292d01eb5bf441db28743c5',
  redirectURL: 'http://mobile.umeng.com/social'
})
push.plainRegister()

使用

import { AddressSelectItem} from 'react-native-dl-bmkit';

组件

1 配置

  • defaultConfig :基础配置
  • defaultStyle : 默认样式
  • initialConfig :初始化配置函数

2 列表组件

  • DefaultListView 普通列表组件
  • DefaultSectionListView 普通分组列表
  • ListEmptyView 空列表视图

3 彷iOS的sheet,底部弹出按钮列表

  • import { ActionSheetModal} from 'react-native-dl-bmkit';

4 字体图标icon组件

import { ActionSheetModal} from 'react-native-dl-bmkit';

<Icon iconCode={0xe64a} style={{ color: '#fff', fontSize: 20 }} />

5 SearchBar搜索框

import { SearchBar} from 'react-native-dl-bmkit';

<SearchBar leftIcon={0xe9c3} leftText='筛选' rightIcon={0xe7e4} rightText='新增' searchCallback={t => console.log('搜索事件', t)} />

6 图片浏览器

import { ImageViewer} from 'react-native-dl-bmkit';

<ImageViewer
    style={{ flex: 1 }}
    imageUrls={imageViewerImgUrls}
    index={imageViewerImgIndex}
    saveToLocalByLongPress={false}
    onClick={hiddenImageViewer}
    enablePreload={true} />

7 SelectView选择项

8 ShareModal分享弹层

9 TabBar横向tab切换按钮

10 AddNumberItem添加数字

11 AddressSelectItem地址输入

12 DatePickerItem时间选择

13 HeadPhotoItem头像选择

14 InputItem输入组件

15 九宫格选择组件

16 MultilineInputItem多行文本输入

17 PhotoPickerItem 图片选择组件

18 SelectItem选择项

19 SwitchItem开关选项

20 TagPickerItem标签选项

21 Form 组件

import { Form} from 'react-native-dl-bmkit';

<Form separator={true} getFormData={fd => formData = fd}>

22 MapApi 高德地图webapi

  • geocoding 地理编码
  • reGeocoding 逆地理编码
  • keyPoi 关键字搜索POI
  • inputTips 输入提示

23 pay支付模块

  • wechatRegister 微信注册 appKey
  • wechatPay 微信支付
  • aliPay 支付宝支付
  • applePay 苹果支付

24 request请求

  • post post请求
  • get get请求
  • upload 上传文件

25tips 提示模块

  • showTips 显示文本提示

  • showLoading 显示loading

  • hideLoading 隐藏loading

  • showAlertTips 弹出提示框

  • hideAlertTips 隐藏提示框

  • showHUDInputTips 显示输入框弹窗

26 push 推送相关

  • plainRegister 普通注册通知
  • actionRegister 快捷交互,注册通知
  • setAutoAlert 设置是否允许SDK当应用在前台运行收到Push时弹出Alert框(默认开启)
  • addBackstageNotificationListener 监听 后台点击通知推送
  • addForegroundNotificationListener 监听 前台点击通知推送
  • getTags 普通注册通知
  • addTags 添加标签
  • deleteTags 移除标签

27 share 分享相关

  • initUniversalLink 设置 universalLink
  • isInstall 判断 平台是否安装
  • initPlaform 初始化分享平台 微信/QQ/新浪
  • getUserInfoForPlatform 第三方平台 授权
  • cancelAuthWithPlatform 第三方平台 取消授权
  • shareText 分享文本
  • shareImage 分享图片
  • shareWebPage 分享网页
  • shareMusic 分享音乐
  • shareVideo 分享视频
  • shareMiniProgram 分享小程序