FlutterAsaAttributionPlugin.m 1.4 KB

1234567891011121314151617181920212223242526272829303132
  1. #import "FlutterAsaAttributionPlugin.h"
  2. #import <iAd/iAd.h>
  3. #import <AdServices/AdServices.h>
  4. #import <AppTrackingTransparency/AppTrackingTransparency.h>
  5. #import "AsaTool.h"
  6. @implementation FlutterAsaAttributionPlugin
  7. + (void)registerWithRegistrar:(NSObject <FlutterPluginRegistrar> *)registrar {
  8. FlutterMethodChannel *channel = [FlutterMethodChannel methodChannelWithName:@"lianshumin.github.io/flutter_asa_attribution"
  9. binaryMessenger:[registrar messenger]];
  10. FlutterAsaAttributionPlugin *instance = [[FlutterAsaAttributionPlugin alloc] init];
  11. [registrar addMethodCallDelegate:instance channel:channel];
  12. }
  13. - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {
  14. if ([@"requestAttributionDetails" isEqualToString:call.method]) {
  15. [AsaTool requestAttributionWithComplete:^(NSDictionary *_Nonnull data, NSError *_Nonnull
  16. error) {
  17. if (data) {
  18. result(data);
  19. } else {
  20. result([FlutterError errorWithCode:@"FAILED" message:error.localizedFailureReason details:nil]);
  21. }
  22. }];
  23. } else if ([@"attributionToken" isEqualToString:call.method]) {
  24. result([AsaTool attributionToken]);
  25. } else {
  26. result(FlutterMethodNotImplemented);
  27. }
  28. }
  29. @end