UmengCommonSdkPlugin.m 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #import "UmengCommonSdkPlugin.h"
  2. #import <UMCommon/UMConfigure.h>
  3. #import <UMCommon/MobClick.h>
  4. @interface UMengflutterpluginForUMCommon : NSObject
  5. @end
  6. @implementation UMengflutterpluginForUMCommon
  7. + (BOOL)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result{
  8. BOOL resultCode = YES;
  9. if ([@"initCommon" isEqualToString:call.method]){
  10. NSArray* arguments = (NSArray *)call.arguments;
  11. NSString* appkey = arguments[1];
  12. NSString* channel = arguments[2];
  13. [UMConfigure initWithAppkey:appkey channel:channel];
  14. //result(@"success");
  15. }
  16. else{
  17. resultCode = NO;
  18. }
  19. return resultCode;
  20. }
  21. @end
  22. @interface UMengflutterpluginForAnalytics : NSObject
  23. @end
  24. @implementation UMengflutterpluginForAnalytics : NSObject
  25. + (BOOL)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result{
  26. BOOL resultCode = YES;
  27. NSArray* arguments = (NSArray *)call.arguments;
  28. if ([@"onEvent" isEqualToString:call.method]){
  29. NSString* eventName = arguments[0];
  30. NSDictionary* properties = arguments[1];
  31. [MobClick event:eventName attributes:properties];
  32. //result(@"success");
  33. }
  34. else if ([@"onProfileSignIn" isEqualToString:call.method]){
  35. NSString* userID = arguments[0];
  36. [MobClick profileSignInWithPUID:userID];
  37. //result(@"success");
  38. }
  39. else if ([@"onProfileSignOff" isEqualToString:call.method]){
  40. [MobClick profileSignOff];
  41. //result(@"success");
  42. }
  43. else if ([@"setPageCollectionModeAuto" isEqualToString:call.method]){
  44. [MobClick setAutoPageEnabled:YES];
  45. //result(@"success");
  46. }
  47. else if ([@"setPageCollectionModeManual" isEqualToString:call.method]){
  48. [MobClick setAutoPageEnabled:NO];
  49. //result(@"success");
  50. }
  51. else if ([@"onPageStart" isEqualToString:call.method]){
  52. NSString* pageName = arguments[0];
  53. [MobClick beginLogPageView:pageName];
  54. //result(@"success");
  55. }
  56. else if ([@"onPageEnd" isEqualToString:call.method]){
  57. NSString* pageName = arguments[0];
  58. [MobClick endLogPageView:pageName];
  59. //result(@"success");
  60. }
  61. else if ([@"reportError" isEqualToString:call.method]){
  62. NSLog(@"reportError API not existed ");
  63. //result(@"success");
  64. }
  65. else{
  66. resultCode = NO;
  67. }
  68. return resultCode;
  69. }
  70. @end
  71. @implementation UmengCommonSdkPlugin
  72. + (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar {
  73. FlutterMethodChannel* channel = [FlutterMethodChannel
  74. methodChannelWithName:@"umeng_common_sdk"
  75. binaryMessenger:[registrar messenger]];
  76. UmengCommonSdkPlugin* instance = [[UmengCommonSdkPlugin alloc] init];
  77. [registrar addMethodCallDelegate:instance channel:channel];
  78. }
  79. - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result {
  80. if ([@"getPlatformVersion" isEqualToString:call.method]) {
  81. result([@"iOS " stringByAppendingString:[[UIDevice currentDevice] systemVersion]]);
  82. } else {
  83. //result(FlutterMethodNotImplemented);
  84. }
  85. BOOL resultCode = [UMengflutterpluginForUMCommon handleMethodCall:call result:result];
  86. if (resultCode) return;
  87. resultCode = [UMengflutterpluginForAnalytics handleMethodCall:call result:result];
  88. if (resultCode) return;
  89. result(FlutterMethodNotImplemented);
  90. }
  91. @end