Я нашел много информации о передаче данных от флаттера к андроиду, используя метод канала, но не для цели c.Я понимаю вызывающие функции, но не передаю данные.Ниже приведен пример того, что у меня есть.
Future<void> _uploadImage(String filePath) async {
try {
await platform.invokeMethod('uploadImage', {"filePath": filePath});
} on PlatformException catch (e) {
print("Failed to get token: '${e.message}'.");
}
}
else if([@"uploadImage" isEqualToString:call.method]){
DBUserClient *client = [DBClientsManager authorizedClient];
NSString *filePath = call.arguments(@"filePath");
NSLog(filePath, result);
NSData *fileData = [filePath dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
[[[client.filesRoutes uploadData:filePath inputData:fileData]
setResponseBlock:^(DBFILESFileMetadata *result, DBFILESUploadError *routeError, DBRequestError *networkError) {
if (result)
{
NSLog(@"%@\n", result);
} else
{
NSLog(@"%@\n%@\n", routeError, networkError);
}
}] setProgressBlock:^(int64_t bytesUploaded, int64_t totalBytesUploaded, int64_t totalBytesExpectedToUploaded) {
NSLog(@"\n%lld\n%lld\n%lld\n", bytesUploaded, totalBytesUploaded, totalBytesExpectedToUploaded);
}];
}
else{
result(FlutterMethodNotImplemented);
}
}];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
Чтобы пояснить, нижний набор кода, написанный на target-c, определенно не верен, но я пытался разобраться в нем.У меня есть путь к изображениям, и я пытаюсь загрузить его в Dropbox.Основная проблема заключается в том, что filePath не достигает канала метода.NSString * filePath = call.arguments (@ "filePath") не является фактическим вызовом функции.