1.0.88 • Published 3 years ago

react-native-dl-bmkit v1.0.88

Weekly downloads
1
License
MIT
Repository
github
Last release
3 years ago

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可工程设置面板设置 npm.io

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选择项

npm.io

8 ShareModal分享弹层

npm.io

9 TabBar横向tab切换按钮

npm.io

10 AddNumberItem添加数字

npm.io

11 AddressSelectItem地址输入

npm.io

12 DatePickerItem时间选择

13 HeadPhotoItem头像选择

npm.io

14 InputItem输入组件

npm.io

15 九宫格选择组件

npm.io

16 MultilineInputItem多行文本输入

npm.io

17 PhotoPickerItem 图片选择组件

npm.io

18 SelectItem选择项

npm.io

19 SwitchItem开关选项

npm.io

20 TagPickerItem标签选项

npm.io

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 隐藏提示框 npm.io

  • showHUDInputTips 显示输入框弹窗 npm.io

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 分享小程序
1.0.88

3 years ago

1.0.86

3 years ago

1.0.85

3 years ago

1.0.83

3 years ago

1.0.82

3 years ago

1.0.80

3 years ago

1.0.79

3 years ago

1.0.78

3 years ago

1.0.77

3 years ago

1.0.76

3 years ago

1.0.75

3 years ago

1.0.73

3 years ago

1.0.72

3 years ago

1.0.71

3 years ago

1.0.69

4 years ago

1.0.70

4 years ago

1.0.68

4 years ago

1.0.66

4 years ago

1.0.65

4 years ago

1.0.64

4 years ago

1.0.63

4 years ago

1.0.62

4 years ago

1.0.60

4 years ago

1.0.57

4 years ago

1.0.56

4 years ago

1.0.55

4 years ago

1.0.51

4 years ago

1.0.50

4 years ago

1.0.46

4 years ago

1.0.45

4 years ago

1.0.43

4 years ago

1.0.42

4 years ago

1.0.41

4 years ago

1.0.40

4 years ago

1.0.39

4 years ago

1.0.38

4 years ago

1.0.36

4 years ago

1.0.35

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.9

4 years ago

1.0.10

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago