blob: 5f7debc3fe07cc9c09c6007c1048488a14353a6a [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "IosPlatformImagesPlugin.h"
#if !__has_feature(objc_arc)
#error ARC must be enabled!
#endif
@interface IosPlatformImagesPlugin ()
@end
@implementation IosPlatformImagesPlugin
+ (void)registerWithRegistrar:(NSObject<FlutterPluginRegistrar> *)registrar {
FlutterMethodChannel *channel =
[FlutterMethodChannel methodChannelWithName:@"plugins.flutter.io/ios_platform_images"
binaryMessenger:[registrar messenger]];
[channel setMethodCallHandler:^(FlutterMethodCall *call, FlutterResult result) {
if ([@"loadImage" isEqualToString:call.method]) {
NSString *name = call.arguments;
UIImage *image = [UIImage imageNamed:name];
NSData *data = UIImagePNGRepresentation(image);
if (data) {
result(@{
@"scale" : @(image.scale),
@"data" : [FlutterStandardTypedData typedDataWithBytes:data],
});
} else {
result(nil);
}
return;
} else if ([@"resolveURL" isEqualToString:call.method]) {
NSArray *args = call.arguments;
NSString *name = args[0];
NSString *extension = (args[1] == (id)NSNull.null) ? nil : args[1];
NSURL *url = [[NSBundle mainBundle] URLForResource:name withExtension:extension];
result(url.absoluteString);
return;
}
result(FlutterMethodNotImplemented);
}];
}
@end