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

react-native-mrangers-log

v3.8.5

Published

RangersAppLog ReactNativePlugin

Downloads

56

Readme

react-native-mrangers-log

npm version

此仓库基于rangers_applog_reactnative_plugin

3.0.0 版本支持ALink,并且调整集成与初始化方式。最后一个老版本为2.2.1

Android SDK Version: 6.16.6

iOS SDK Version: 6.16.6

TODO 对于风控子库的解释,后期看官网集成文档,看能否移除,暂时做保留

「和后端同学确认,目前官网反作弊的库已经下掉了,已经不在官网展示了,这边用之前的就可以,不需要更新子库的版本,对功能是没有影响」

开始

$ npm install react-native-mrangers-log -E

在使用 RangersAppLog SDK 前,你需要先注册DataRangers账号并且创建一个应用。

插件安装与初始化

iOS

  1. 打开ios/Podfile文件,添加以下
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
·······
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/volcengine/volcengine-specs.git'
source 'https://github.com/bytedance/cocoapods_sdk_source_repo.git'


·······
target
  1. 添加 rangersapplog.XXXXXXX 的UrlScheme,注意替换XXXXXXX为自己的
  2. 添加Universal Link,注意替换xxx为自己的
<string>applinks:xxx.volctracer.com</string>
  1. 打开ios/XXX/AppDelegate.h,添加BDAutoTrackAlinkRouting(ALink所需)
...
#import <RangersAppLog/RangersAppLog.h>
  
@interface AppDelegate : UIResponder <UIApplicationDelegate, BDAutoTrackAlinkRouting>

@property (nonatomic, strong) UIWindow *window;

@end
  1. 打开ios/XXX/AppDelegate.m,添加(ALink所需)
...
#import "RangersAppLogModule.h"
  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  ...
  // 如果需要测试alink的延迟深度链接,需要改渠道或者版本号
  [RangersAppLogModule initializeSDK:self launchOptions:launchOptions appId:@"appId" appName:@"appName" channel:@"channel"];
  ...
}

...
// 末尾添加
//************************************************头条ALink监听回调************************************************
#pragma mark --BDAutoTrackAlinkRouting--
- (void)onAttributionData:(nullable NSDictionary *)routingInfo error:(nullable NSError *)error {
  [RangersAppLogModule onAttributionData:routingInfo error:error];
}

- (void)onALinkData:(nullable NSDictionary *)routingInfo error:(nullable NSError *)error {
  [RangersAppLogModule onALinkData:routingInfo error:error];
}

/// 开启剪切板读取,裂变所需
- (bool)shouldALinkSDKAccessPasteBoard {
    return true;
}
//************************************************头条ALink监听回调************************************************

@end

Android

  1. 在 android 根目录 的 build.gradle 中添加:
buildscript {
  repositories {
    ...
    maven {
      url 'https://artifact.bytedance.com/repository/Volcengine/'
    }
  }
  dependencies {
    ...
    // 头条火山,每次升级记得调整版本
    classpath 'com.bytedance.applog:RangersAppLog-All-plugin:6.16.6'
  }
}

allprojects {
  repositories {
    ...
    maven {
      url 'https://artifact.bytedance.com/repository/Volcengine/'
    }
  }
}
  1. 在 app module 的 build.gradle 并在 defaultConfig 中添加:
defaultConfig {
  ...
  manifestPlaceholders.put("APPLOG_SCHEME", "rangersapplog.XXXXXXXXX".toLowerCase())
}

....

apply plugin: 'com.bytedance.std.tracker'
  1. 打开android/app/src/main/AndroidManifest.xml配置AppLinks(ALink所需)
@@ -1,101 +1,112 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.XXXX">

    ...
    <application>
        <activity
            android:name=".MainActivity"
            android:configChanges="screenLayout|smallestScreenSize|keyboard|keyboardHidden|orientation|screenSize|uiMode"
            android:label="@string/app_name"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="adjustResize">
            .......
            <!--添加下面-->
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
              
                <!-- XXXXX.volctracer.com 此处的网址为ALink后台的链接-->
                <data
                    android:scheme="https"
                    android:host="XXXXX.volctracer.com"
                    android:pathPrefix="/a" />
            </intent-filter>
            <!--添加上面-->
        </activity>
        .......
    </application>

</manifest>
  1. 打开android/app/src/main/java/com/XXXX/MainApplication.java,添加初始化代码
...
import com.reactnativerangersapplogreactnativeplugin.RangersApplogReactnativePluginModule;
...

public class MainApplication extends MultiDexApplication implements ReactApplication {
 ...
   @Override
   public void onCreate() {
    // 如果需要测试alink的延迟深度链接,需要改渠道或者版本号,隐私合规需要注意下方的Bool值
    RangersApplogReactnativePluginModule.initializeSDK(this, "appId", "channel", true, true, true, false);
   }
 ...
}

插件接口文档

基础接口

| 接口名 | 功能 | 参数 | 支持平台 | |----------------------------|-----------------------------------|-------------------------------------------------------------|--------------| | init | 初始化 | 参数:字典,不可空,参考index.js | iOS,Android | | onEvent | 生成自定义埋点 | 参数1:string,非空。事件名。 参数2:字典,可空。事件参数。 | iOS, Android | | start | init 之后需要调用start,为了隐私合规 | 无 | iOS, Android | | flush | 主动触发上报。SDK有频率限制,每10s最多可以触发一次 | 无 | iOS, Android |

用户属性

| 接口名 | 功能 | 参数 | 支持平台 | |----------------------------|-----------------------------------|-------------------------------------------------------------|--------------| | profileSet | 设置用户属性,存在则覆盖,不存在则创建 | 参数:字典,不可空。 | iOS, Android | | profileSetOnce | 设置用户属性,存在则不设置,不存在则创建,适合首次相关的用户属性,比如首次访问时间等 | 参数:字典,不可空。 | iOS, Android | | profileIncrement | 设置数值类型的属性,可进行累加 | 参数:字典,不可空。 | iOS, Android | | profileAppend | 向用户的某个 List 类型的属性添加属性,比如爱好 | 参数:字典,不可空。 | iOS, Android | | profileUnset | 删除用户的属性 | 参数:字符串,不可空 | iOS, Android |

事件公共属性

| 接口名 | 功能 | 参数 | 支持平台 | |----------------------------|-----------------------------------|-------------------------------------------------------------|--------------| | setHeaderInfo | 自定义header信息 设置用户公共属性 | 参数1:字典,可空。自定义header信息。 | iOS, Android | | removeHeaderInfo | 移除自定义事件公共属性 | 参数:字符串,不可空 | iOS, Android |

A/B测试

| 接口名 | 功能 | 参数 | 支持平台 | |----------------------------|-----------------------------------|-------------------------------------------------------------|--------------| | getAbSdkVersion | 获取全部客户端和服务端已曝光参数 | 参数:无 返回:str | iOS, Android | | getABTestConfigValueForKey | 【异步】获取AB测试的配置,若不存在返回nil | 参数1: str, ABTest配置的key 返回:str或nil | iOS, Android | | getABTestConfigValueForKeySync | 【同步】获取AB测试的配置,若不存在返回nil | 参数1: str, ABTest配置的key 返回:str或nil | iOS, Android | | getAllAbTestConfigs | 获取ABTest相关配置,此接口不会触发曝光,可以随意读取。如果正常为了做实验,请勿使用此接口,请使用getABTestConfigValueForKey、getABTestConfigValueForKeySync接口 | 参数: 无返回:object | iOS, Android |

用户信息

| 接口名 | 功能 | 参数 | 支持平台 | | ----------------- | ---------------- | ----------------------------------- | ------------ | | setUserUniqueId | 设置用户UUID | 参数1:string,可空。user_unique_id | iOS, Android | | getUserUniqueID | 获取绑定后的UUID | 参数:无 返回:str、null、undefined | iOS, Android | | getUserUniqueIDSync | 获取绑定后的UUID | 参数:无 返回:str、null、undefined | iOS, Android | | clearUserUniqueId | 清除UUID | 参数:无 返回:无 | iOS, Android |

设备信息

| 接口名 | 功能 | 参数 | 支持平台 | |----------------------------|-----------------------------------|-------------------------------------------------------------|--------------| | getDeviceID | 获取did | 参数:无 返回:str。 | iOS, Android | | getSsid | 获取ssid | 参数:无 返回:str、null、undefined | iOS, Android | | getDeviceIDSync | 获取did | 参数:无 返回:str。 | iOS, Android | | getSsidSync | 获取ssid | 参数:无 返回:str、null、undefined | iOS, Android |

ALink

| 接口名 | 功能 | 参数 | 支持平台 | | -------------------------- | ------------------------------------------------------------ | ---------------------------------------- | ------------ | | getAttributionData | 获取延迟深度链接的归因数据 | 参数:无 返回:object、null、undefined。 | iOS, Android | | addALinkDataListener | 添加深度链接唤醒监听,需要配合RN的Link与模块的initALinkUrl | 参数:function(ret){} | iOS, Android | | addAttributionDataListener | 添加首次启动归因监听 | 参数:function(ret){} | iOS, Android | | initALinkUrl | 深度链接,此方法符合条件会触发addALinkDataListener,需配合RN的Link | 参数:字符串 | iOS, Android |

ALink接口的调用顺序为先添加监听,再调用模块的start方法

License

MIT