Skip to content

Commit 6331df4

Browse files
author
WuWenhui
committed
Android SDK升级到2.6.1
1 parent 724b43b commit 6331df4

File tree

7 files changed

+99
-63
lines changed

7 files changed

+99
-63
lines changed

.idea/workspace.xml

Lines changed: 18 additions & 31 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

android/libs/OpenInstall_v2.5.5.jar

-85.8 KB
Binary file not shown.

android/libs/OpenInstall_v2.6.1.jar

95.7 KB
Binary file not shown.

android/src/main/java/io/openinstall/openinstall_flutter_plugin/OpeninstallFlutterPlugin.java

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@
1010
import com.fm.openinstall.Configuration;
1111
import com.fm.openinstall.OpenInstall;
1212
import com.fm.openinstall.listener.AppInstallAdapter;
13+
import com.fm.openinstall.listener.AppInstallRetryAdapter;
1314
import com.fm.openinstall.listener.AppWakeUpAdapter;
15+
import com.fm.openinstall.listener.AppWakeUpListener;
1416
import com.fm.openinstall.model.AppData;
17+
import com.fm.openinstall.model.Error;
1518

1619
import java.util.HashMap;
1720
import java.util.Map;
@@ -37,6 +40,7 @@ public class OpeninstallFlutterPlugin implements FlutterPlugin, MethodCallHandle
3740
private static final String METHOD_INIT_PERMISSION = "initWithPermission";
3841
private static final String METHOD_WAKEUP = "registerWakeup";
3942
private static final String METHOD_INSTALL = "getInstall";
43+
private static final String METHOD_INSTALL_RETRY = "getInstallCanRetry";
4044
private static final String METHOD_REGISTER = "reportRegister";
4145
private static final String METHOD_EFFECT_POINT = "reportEffectPoint";
4246

@@ -50,6 +54,8 @@ public class OpeninstallFlutterPlugin implements FlutterPlugin, MethodCallHandle
5054
private volatile boolean initialized = false;
5155
private Configuration configuration = null;
5256

57+
private boolean alwaysCallback = false;
58+
5359

5460
@Override
5561
public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
@@ -76,6 +82,7 @@ public void onMethodCall(MethodCall call, @NonNull Result result) {
7682
config(adEnabled, oaid, gaid, macDisabled, imeiDisabled);
7783
result.success("OK");
7884
} else if (METHOD_INIT.equalsIgnoreCase(call.method)) {
85+
alwaysCallback = call.argument("alwaysCallback");
7986
init();
8087
result.success("OK");
8188
} else if (METHOD_INIT_PERMISSION.equalsIgnoreCase(call.method)) {
@@ -98,6 +105,17 @@ public void onInstall(AppData appData) {
98105
}
99106
}, seconds == null ? 0 : seconds);
100107
result.success("OK");
108+
} else if (METHOD_INSTALL_RETRY.equalsIgnoreCase(call.method)) {
109+
Integer seconds = call.argument("seconds");
110+
OpenInstall.getInstallCanRetry(new AppInstallRetryAdapter() {
111+
@Override
112+
public void onInstall(AppData appData, boolean retry) {
113+
Map<String, String> data = data2Map(appData);
114+
data.put("retry", String.valueOf(retry));
115+
channel.invokeMethod(METHOD_INSTALL_NOTIFICATION, data);
116+
}
117+
}, seconds == null ? 0 : seconds);
118+
result.success("OK");
101119
} else if (METHOD_REGISTER.equalsIgnoreCase(call.method)) {
102120
OpenInstall.reportRegister();
103121
result.success("OK");
@@ -143,10 +161,11 @@ private void init() {
143161
if (intentHolder == null) {
144162
Activity activity = activityPluginBinding.getActivity();
145163
if (activity != null) {
146-
OpenInstall.getWakeUp(activity.getIntent(), wakeUpAdapter);
164+
wakeup(activity.getIntent());
147165
}
148166
} else {
149-
OpenInstall.getWakeUp(intentHolder, wakeUpAdapter);
167+
wakeup(intentHolder);
168+
intentHolder = null;
150169
}
151170
} else {
152171
Log.d(TAG, "Context is null, can not init OpenInstall");
@@ -164,9 +183,10 @@ public void run() {
164183
activityPluginBinding.removeRequestPermissionsResultListener(permissionsResultListener);
165184
initialized = true;
166185
if (intentHolder == null) {
167-
OpenInstall.getWakeUp(activity.getIntent(), wakeUpAdapter);
186+
wakeup(activity.getIntent());
168187
} else {
169-
OpenInstall.getWakeUp(intentHolder, wakeUpAdapter);
188+
wakeup(intentHolder);
189+
intentHolder = null;
170190
}
171191
}
172192
});
@@ -178,21 +198,35 @@ public void run() {
178198
@Override
179199
public boolean onNewIntent(Intent intent) {
180200
if (initialized) {
181-
OpenInstall.getWakeUp(intent, wakeUpAdapter);
201+
wakeup(intent);
182202
} else {
183203
intentHolder = intent;
184204
}
185205
return false;
186206
}
187207
};
188208

189-
private final AppWakeUpAdapter wakeUpAdapter = new AppWakeUpAdapter() {
190-
@Override
191-
public void onWakeUp(AppData appData) {
192-
channel.invokeMethod(METHOD_WAKEUP_NOTIFICATION, data2Map(appData));
193-
intentHolder = null;
209+
210+
private void wakeup(Intent intent) {
211+
if (alwaysCallback) {
212+
OpenInstall.getWakeUpAlwaysCallback(intent, new AppWakeUpListener() {
213+
@Override
214+
public void onWakeUpFinish(AppData appData, Error error) {
215+
if (error != null) {
216+
Log.d(TAG, "getWakeUpAlwaysCallback : " + error.toString());
217+
}
218+
channel.invokeMethod(METHOD_WAKEUP_NOTIFICATION, data2Map(appData));
219+
}
220+
});
221+
} else {
222+
OpenInstall.getWakeUp(intent, new AppWakeUpAdapter() {
223+
@Override
224+
public void onWakeUp(AppData appData) {
225+
channel.invokeMethod(METHOD_WAKEUP_NOTIFICATION, data2Map(appData));
226+
}
227+
});
194228
}
195-
};
229+
}
196230

197231
private final PluginRegistry.RequestPermissionsResultListener permissionsResultListener =
198232
new PluginRegistry.RequestPermissionsResultListener() {
@@ -205,8 +239,10 @@ public boolean onRequestPermissionsResult(int requestCode, String[] permissions,
205239

206240
private static Map<String, String> data2Map(AppData data) {
207241
Map<String, String> result = new HashMap<>();
208-
result.put("channelCode", data.getChannel());
209-
result.put("bindData", data.getData());
242+
if (data != null) {
243+
result.put("channelCode", data.getChannel());
244+
result.put("bindData", data.getData());
245+
}
210246
return result;
211247
}
212248

example/.flutter-plugins-dependencies

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"openinstall_flutter_plugin","path":"D:\\\\workspace\\\\OP\\\\openinstall_flutter_plugin\\\\","dependencies":[]}],"android":[{"name":"openinstall_flutter_plugin","path":"D:\\\\workspace\\\\OP\\\\openinstall_flutter_plugin\\\\","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"openinstall_flutter_plugin","dependencies":[]}],"date_created":"2021-08-23 14:37:43.036878","version":"2.0.5"}
1+
{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"openinstall_flutter_plugin","path":"D:\\\\workspace\\\\OP\\\\openinstall_flutter_plugin\\\\","dependencies":[]}],"android":[{"name":"openinstall_flutter_plugin","path":"D:\\\\workspace\\\\OP\\\\openinstall_flutter_plugin\\\\","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"openinstall_flutter_plugin","dependencies":[]}],"date_created":"2021-12-31 11:24:33.077222","version":"2.0.5"}

example/lib/main.dart

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ class _MyAppState extends State<MyApp> {
3030

3131
_openinstallFlutterPlugin = new OpeninstallFlutterPlugin();
3232

33-
_openinstallFlutterPlugin.init(wakeupHandler);
34-
_openinstallFlutterPlugin.install(installHandler);
33+
_openinstallFlutterPlugin.init(wakeupHandler, alwaysCallback: true);
34+
_openinstallFlutterPlugin.getInstallCanRetry(installHandler, 3);
3535

3636
setState(() {
3737
});
@@ -82,20 +82,19 @@ class _MyAppState extends State<MyApp> {
8282

8383
Future installHandler(Map<String, dynamic> data) async {
8484
setState(() {
85-
installLog = "install result : channel=" +
86-
data['channelCode'] +
87-
", data=" +
88-
data['bindData'].toString() +
85+
installLog = "install result : "
86+
"channel=" + data['channelCode'] +
87+
", data=" + data['bindData'].toString() +
88+
", retry=" + data['retry'].toString() +
8989
"\n";
9090
});
9191
}
9292

9393
Future wakeupHandler(Map<String, dynamic> data) async {
9494
setState(() {
95-
wakeUpLog = "wakeup result : channel=" +
96-
data['channelCode'] +
97-
", data=" +
98-
data['bindData'].toString() +
95+
wakeUpLog = "wakeup result : "
96+
"channel=" + data['channelCode'] +
97+
", data=" + data['bindData'].toString() +
9998
"\n";
10099
});
101100
}

lib/openinstall_flutter_plugin.dart

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ typedef Future<dynamic> EventHandler(Map<String, dynamic> data);
77

88
class OpeninstallFlutterPlugin {
99
// 单例
10-
static final OpeninstallFlutterPlugin _instance = new OpeninstallFlutterPlugin._internal();
10+
static final OpeninstallFlutterPlugin _instance =
11+
new OpeninstallFlutterPlugin._internal();
12+
1113
factory OpeninstallFlutterPlugin() => _instance;
1214

1315
OpeninstallFlutterPlugin._internal();
@@ -17,10 +19,12 @@ class OpeninstallFlutterPlugin {
1719
late EventHandler _wakeupHandler;
1820
late EventHandler _installHandler;
1921

20-
static const MethodChannel _channel = const MethodChannel('openinstall_flutter_plugin');
22+
static const MethodChannel _channel =
23+
const MethodChannel('openinstall_flutter_plugin');
2124

2225
// 旧版本使用,保留一段时间,防止 npm 自动升级使用最新版本插件出现问题
2326
void config(bool adEnabled, String? oaid, String? gaid) {
27+
print("OpenInstallPlugin:config(bool adEnabled, String? oaid, String? gaid) 后续版本将移除,请使用configAndroid(Map options)");
2428
if (Platform.isAndroid) {
2529
var args = new Map();
2630
args["adEnabled"] = adEnabled;
@@ -40,20 +44,24 @@ class OpeninstallFlutterPlugin {
4044
}
4145
}
4246

43-
// initWithPermission 将移除
44-
// 保留一段时间,防止 npm 自动升级使用最新版本插件出现问题
45-
void init(EventHandler wakeupHandler, [bool permission = false]) {
47+
/// wakeupHandler 拉起回调.
48+
/// alwaysCallback 拉起是否总是有回调.
49+
/// permission 初始化时是否申请 READ_PHONE_STATE 权限,已弃用.
50+
void init(EventHandler wakeupHandler, {bool alwaysCallback = false, bool permission = false}) {
4651
_wakeupHandler = wakeupHandler;
4752
_channel.setMethodCallHandler(_handleMethod);
4853
_channel.invokeMethod("registerWakeup");
4954
if (Platform.isAndroid) {
5055
if (permission) {
5156
_channel.invokeMethod("initWithPermission");
57+
print("OpenInstallPlugin:initWithPermission 后续版本将移除,请自行进行权限申请");
5258
} else {
53-
_channel.invokeMethod("init");
59+
var args = new Map();
60+
args["alwaysCallback"] = alwaysCallback;
61+
_channel.invokeMethod("init", args);
5462
}
5563
} else {
56-
print( "OpenInstallSDK:插件版本>=1.3.1后,iOS环境下通用链接和scheme拉起的原生代理方法由插件内部来处理,如果出现拉起问题,请参考官方文档处理");
64+
print("OpenInstallPlugin:插件版本>=1.3.1后,iOS环境下通用链接和scheme拉起的原生代理方法由插件内部来处理,如果出现拉起问题,请参考官方文档处理");
5765
}
5866
}
5967

@@ -64,6 +72,13 @@ class OpeninstallFlutterPlugin {
6472
_channel.invokeMethod('getInstall', args);
6573
}
6674

75+
void getInstallCanRetry(EventHandler installHandler, [int seconds = 3]) {
76+
var args = new Map();
77+
args["seconds"] = seconds;
78+
this._installHandler = installHandler;
79+
_channel.invokeMethod('getInstallCanRetry', args);
80+
}
81+
6782
void reportRegister() {
6883
_channel.invokeMethod('reportRegister');
6984
}
@@ -85,5 +100,4 @@ class OpeninstallFlutterPlugin {
85100
throw new UnsupportedError("Unrecognized Event");
86101
}
87102
}
88-
89103
}

0 commit comments

Comments
 (0)