Skip to content

Commit 085886e

Browse files
committed
增加profilePushId和profileUnsetPushId接口
1 parent 30a2021 commit 085886e

File tree

46 files changed

+872
-412
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+872
-412
lines changed

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1+
## 1.0.2
2+
3+
* 新增 profilePushId 和 profileUnsetPushId 接口
4+
15

26
## 1.0.0
37

48
* 事件追踪
59
* 用户属性修改
610
* App激活
711
* 用户登陆
8-
* 其他
12+
* 其他

README.md

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,65 @@
1+
![logo](https://opensource.sensorsdata.cn/wp-content/uploads/logo.png)
2+
<br><br>
13

2-
神策 [`sensors_analytics_flutter_plugin`](https://pub.dartlang.org/packages/sensors_analytics_flutter_plugin) 插件,封装了神策 iOS & Android SDK 常用 API ,使用此插件,可以完成埋点的统计上报。
34

4-
## 1. 在项目中添加安装插件
5-
在 Flutter 项目的 `pubspec.yam` 文件中添加 `sensors_analytics_flutter_plugin` 依赖
5+
## 神策简介
6+
7+
[**神策数据**](https://www.sensorsdata.cn/)
8+
(Sensors Data),隶属于神策网络科技(北京)有限公司,是一家专业的大数据分析服务公司,大数据分析行业开拓者,为客户提供深度用户行为分析平台、以及专业的咨询服务和行业解决方案,致力于帮助客户实现数据驱动。神策数据立足大数据及用户行为分析的技术与实践前沿,业务现已覆盖以互联网、金融、零售快消、高科技、制造等为代表的十多个主要行业、并可支持企业多个职能部门。公司总部在北京,并在上海、深圳、合肥、武汉等地拥有本地化的服务团队,覆盖东区及南区市场;公司拥有专业的服务团队,为客户提供一对一的客户服务。公司在大数据领域积累的核心关键技术,包括在海量数据采集、存储、清洗、分析挖掘、可视化、智能应用、安全与隐私保护等领域。 [**More**](https://www.sensorsdata.cn/about/aboutus.html)
9+
10+
11+
## SDK 简介
12+
13+
神策 sensors_analytics_flutter_plugin 插件,封装了神策 iOS & Android SDK 常用 API ,使用此插件,可以完成埋点的统计上报。
14+
15+
## 使用方式
16+
在 Flutter 项目的 `pubspec.yaml` 文件中添加 `sensors_analytics_flutter_plugin` 依赖
617

718
```yml
819
dependencies:
920
# 添加神策 flutter plugin
10-
sensors_analytics_flutter_plugin: any
21+
sensors_analytics_flutter_plugin: ^1.0.2
1122
```
1223
1324
执行 flutter packages get 命令安装插件
1425
1526
```shell
16-
flutter packages get
27+
flutter pub get
1728
```
1829

30+
## 集成文档
31+
32+
请参考神策官网 [Flutter 插件集成文档](https://www.sensorsdata.cn/manual/sdk_flutter.html)
33+
34+
35+
## 贡献
36+
37+
* 1. 在您的 GitHub 账户下 fork sensors_analytics_flutter_plugin 开源项目;
38+
* 2. 根据您的需求在本地 clone 一份 sensors_analytics_flutter_plugin 源码;
39+
* 3. 您修改或者新增功能后,push 到您 fork 的远程分支;
40+
* 4. 创建 pull request,向 sensors_analytics_flutter_plugin 官方开发分支提交合入请求;
41+
* 5. 神策 SDK 研发团队会及时 review 代码,测试通过后合入。
42+
43+
44+
## 讨论
45+
46+
| 扫码加入神策数据开源社区 QQ 群<br>群号:785122381 | 扫码加入神策数据开源社区微信群 |
47+
| ------ | ------ |
48+
|![ QQ 讨论群](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_1.png) | ![ 微信讨论群 ](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_2.png) |
49+
50+
## 公众号
51+
52+
| 扫码关注<br>神策数据开源社区 | 扫码关注<br>神策数据开源社区服务号 |
53+
| ------ | ------ |
54+
|![ 微信订阅号 ](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_3.png) | ![ 微信服务号 ](https://opensource.sensorsdata.cn/wp-content/uploads/ContentCommonPic_4.png) |
55+
56+
57+
## 新书推荐
58+
59+
| 《数据驱动:从方法到实践》 | 《Android 全埋点解决方案》 | 《iOS 全埋点解决方案》
60+
| ------ | ------ | ------ |
61+
| [![《数据驱动:从方法到实践》](https://opensource.sensorsdata.cn/wp-content/uploads/data_driven_book_1.jpg)](https://item.jd.com/12322322.html) | [![《Android 全埋点解决方案》](https://opensource.sensorsdata.cn/wp-content/uploads/Android-全埋点thumbnail_1.png)](https://item.jd.com/12574672.html) | [![《iOS 全埋点解决方案》](https://opensource.sensorsdata.cn/wp-content/uploads/iOS-全埋点thumbnail_1.png)](https://item.jd.com/12867068.html)
1962

20-
[具体文档](https://www.sensorsdata.cn/manual/sdk_flutter.html)
2163

2264
## License
2365

android/build.gradle

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,12 @@ buildscript {
88
}
99

1010
dependencies {
11-
classpath 'com.android.tools.build:gradle:3.2.1'
11+
classpath 'com.android.tools.build:gradle:3.5.0'
1212
}
1313
}
1414

1515
rootProject.allprojects {
1616
repositories {
17-
maven {
18-
url 'https://dl.bintray.com/zouyuhan/maven'
19-
}
2017
google()
2118
jcenter()
2219
}
@@ -25,22 +22,16 @@ rootProject.allprojects {
2522
apply plugin: 'com.android.library'
2623

2724
android {
28-
29-
try {
30-
compileSdkVersion rootProject.ext.compileSdkVersion
31-
} catch(Exception e){
32-
compileSdkVersion 28
33-
}
25+
compileSdkVersion 28
3426

3527
defaultConfig {
3628
minSdkVersion 16
37-
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
3829
}
3930
lintOptions {
4031
disable 'InvalidPackage'
4132
}
4233
}
4334

4435
dependencies {
45-
api 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:latest.integration'
36+
api 'com.sensorsdata.analytics.android:SensorsAnalyticsSDK:4.2.1'
4637
}

android/gradle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
11
org.gradle.jvmargs=-Xmx1536M
2+
android.enableR8=true
3+
android.useAndroidX=true
4+
android.enableJetifier=true

android/src/main/java/com/sensorsdata/analytics/sensorsanalyticsflutterplugin/SensorsAnalyticsFlutterPlugin.java

Lines changed: 48 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,46 @@
11
package com.sensorsdata.analytics.sensorsanalyticsflutterplugin;
22

3-
import io.flutter.plugin.common.MethodCall;
4-
import io.flutter.plugin.common.MethodChannel;
5-
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
6-
import io.flutter.plugin.common.MethodChannel.Result;
7-
import io.flutter.plugin.common.PluginRegistry.Registrar;
83
import android.text.TextUtils;
4+
5+
import androidx.annotation.NonNull;
6+
97
import com.sensorsdata.analytics.android.sdk.SALog;
108
import com.sensorsdata.analytics.android.sdk.SensorsDataAPI;
9+
1110
import org.json.JSONObject;
12-
import java.util.List;
13-
import java.util.Map;
11+
1412
import java.util.Collection;
1513
import java.util.HashSet;
14+
import java.util.List;
15+
import java.util.Map;
16+
17+
import io.flutter.embedding.engine.plugins.FlutterPlugin;
18+
import io.flutter.plugin.common.MethodCall;
19+
import io.flutter.plugin.common.MethodChannel;
20+
import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
21+
import io.flutter.plugin.common.MethodChannel.Result;
22+
import io.flutter.plugin.common.PluginRegistry.Registrar;
1623

1724
/**
1825
* Sensors Analytics Flutter Plugin
19-
**/
20-
21-
public class SensorsAnalyticsFlutterPlugin implements MethodCallHandler {
22-
26+
*/
27+
public class SensorsAnalyticsFlutterPlugin implements FlutterPlugin, MethodCallHandler {
28+
private MethodChannel channel;
2329
private static final String TAG = "SA.SensorsAnalyticsFlutterPlugin";
2430

31+
@Override
32+
public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
33+
channel = new MethodChannel(flutterPluginBinding.getFlutterEngine().getDartExecutor(), "sensors_analytics_flutter_plugin");
34+
channel.setMethodCallHandler(this);
35+
}
36+
2537
public static void registerWith(Registrar registrar) {
2638
final MethodChannel channel = new MethodChannel(registrar.messenger(), "sensors_analytics_flutter_plugin");
2739
channel.setMethodCallHandler(new SensorsAnalyticsFlutterPlugin());
2840
}
2941

3042
@Override
31-
public void onMethodCall(MethodCall call, Result result) {
43+
public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
3244
try {
3345
List list = (List) call.arguments;
3446
switch (call.method) {
@@ -86,6 +98,12 @@ public void onMethodCall(MethodCall call, Result result) {
8698
case "getDistinctId":
8799
getDistinctId(result);
88100
break;
101+
case "profilePushId":
102+
profilePushId(list);
103+
break;
104+
case "profileUnsetPushId":
105+
profileUnsetPushId(list);
106+
break;
89107
default:
90108
result.notImplemented();
91109
break;
@@ -94,7 +112,11 @@ public void onMethodCall(MethodCall call, Result result) {
94112
e.printStackTrace();
95113
SALog.d(TAG, e.getMessage());
96114
}
115+
}
97116

117+
@Override
118+
public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
119+
channel.setMethodCallHandler(null);
98120
}
99121

100122
/**
@@ -242,6 +264,20 @@ private void clearSuperProperties() {
242264
SensorsDataAPI.sharedInstance().clearSuperProperties();
243265
}
244266

267+
/**
268+
* 保存用户推送 ID 到用户表
269+
*/
270+
private void profilePushId(List list){
271+
SensorsDataAPI.sharedInstance().profilePushId((String)list.get(0), (String)list.get(1));
272+
}
273+
274+
/**
275+
* 删除用户设置的 pushId
276+
*/
277+
private void profileUnsetPushId(List list){
278+
SensorsDataAPI.sharedInstance().profileUnsetPushId((String)list.get(0));
279+
}
280+
245281
private JSONObject assertProperties(Map map) {
246282
if (map != null) {
247283
return new JSONObject(map);

example/.gitignore

Lines changed: 13 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Miscellaneous
22
*.class
3-
*.lock
43
*.log
54
*.pyc
65
*.swp
@@ -16,56 +15,29 @@
1615
*.iws
1716
.idea/
1817

19-
# Visual Studio Code related
20-
.vscode/
18+
# The .vscode folder contains launch configuration and tasks you configure in
19+
# VS Code which you may wish to be included in version control, so this line
20+
# is commented out by default.
21+
#.vscode/
2122

2223
# Flutter/Dart/Pub related
2324
**/doc/api/
2425
.dart_tool/
2526
.flutter-plugins
27+
.flutter-plugins-dependencies
2628
.packages
2729
.pub-cache/
2830
.pub/
29-
build/
31+
/build/
3032

31-
# Android related
32-
**/android/**/gradle-wrapper.jar
33-
**/android/.gradle
34-
**/android/captures/
35-
**/android/gradlew
36-
**/android/gradlew.bat
37-
**/android/local.properties
38-
**/android/**/GeneratedPluginRegistrant.java
33+
# Web related
34+
lib/generated_plugin_registrant.dart
3935

40-
# iOS/XCode related
41-
**/ios/**/*.mode1v3
42-
**/ios/**/*.mode2v3
43-
**/ios/**/*.moved-aside
44-
**/ios/**/*.pbxuser
45-
**/ios/**/*.perspectivev3
46-
**/ios/**/*sync/
47-
**/ios/**/.sconsign.dblite
48-
**/ios/**/.tags*
49-
**/ios/**/.vagrant/
50-
**/ios/**/DerivedData/
51-
**/ios/**/Icon?
52-
**/ios/**/Pods/
53-
**/ios/**/.symlinks/
54-
**/ios/**/profile
55-
**/ios/**/xcuserdata
56-
**/ios/.generated/
57-
**/ios/Flutter/App.framework
58-
**/ios/Flutter/Flutter.framework
59-
**/ios/Flutter/Generated.xcconfig
60-
**/ios/Flutter/app.flx
61-
**/ios/Flutter/app.zip
62-
**/ios/Flutter/flutter_assets/
63-
**/ios/ServiceDefinitions.json
64-
**/ios/Runner/GeneratedPluginRegistrant.*
36+
# Symbolication related
37+
app.*.symbols
38+
39+
# Obfuscation related
40+
app.*.map.json
6541

6642
# Exceptions to above rules.
67-
!**/ios/**/default.mode1v3
68-
!**/ios/**/default.mode2v3
69-
!**/ios/**/default.pbxuser
70-
!**/ios/**/default.perspectivev3
7143
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages

example/.metadata

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# This file should be version controlled and should not be manually edited.
55

66
version:
7-
revision: 5391447fae6209bb21a89e6a5a6583cac1af9b4b
7+
revision: f7a6a7906be96d2288f5d63a5a54c515a6e987fe
88
channel: stable
99

1010
project_type: app

example/CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
## 1.0.0
3+
4+
* 事件追踪
5+
* 用户属性修改
6+
* App激活
7+
* 用户登陆
8+
* 其他

0 commit comments

Comments
 (0)