按友盟的要求,为了合规检查必须将SDK必须升到最新版。但是友盟的最新SDK是null safe的,
但公司的项目还是非null safe的。为了接入最新的友盟的SDK,就把友盟的SDK改成非null safe的了。
友盟SDK的dart代码很少,两分钟就能改完。
1、把pubspec.yaml中的sdk的版本改到2.7.0,如下:
environment:
sdk: '>=2.7.0 <3.0.0'
flutter: ">=1.10.0"
2、把所有错误中的"?"和"!"去掉,没有错误就可以了。
改后的代码如下:
import 'dart:async';
import 'package:flutter/services.dart';
class UmengCommonSdk {
static const MethodChannel _channel =
const MethodChannel('umeng_common_sdk');
static Future<String> get platformVersion async {
final String version = await _channel.invokeMethod('getPlatformVersion');
return version;
}
static Future<dynamic> initCommon(String androidAppkey, String iosAppkey, String channel) async {
List<dynamic> params = [androidAppkey, iosAppkey ,channel];
final dynamic result = await _channel.invokeMethod('initCommon', params);
return result;
}
static void onEvent(String event, Map<String,dynamic> properties) {
List<dynamic> args = [event,properties];
_channel.invokeMethod('onEvent', args);
}
static void onProfileSignIn (String userID) {
List<dynamic> args = [userID];
_channel.invokeMethod('onProfileSignIn', args);
}
static void onProfileSignOff () {
_channel.invokeMethod('onProfileSignOff');
}
static void setPageCollectionModeManual() {
_channel.invokeMethod('setPageCollectionModeManual');
}
static void onPageStart(String viewName) {
List<dynamic> args = [viewName];
_channel.invokeMethod('onPageStart', args);
}
static void onPageEnd(String viewName) {
List<dynamic> args = [viewName];
_channel.invokeMethod('onPageEnd', args);
}
static void setPageCollectionModeAuto() {
_channel.invokeMethod('setPageCollectionModeAuto');
}
static void reportError(String error) {
List<dynamic> args = [error];
_channel.invokeMethod('reportError', args);
}
}