Как передать переменную из флаттера в родную цель c - PullRequest
0 голосов
/ 02 июля 2019

Я нашел много информации о передаче данных от флаттера к андроиду, используя метод канала, но не для цели 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") не является фактическим вызовом функции.

1 Ответ

1 голос
/ 02 июля 2019

Изменение:

NSString *filePath = call.arguments(@"filePath");

на

NSString *filePath = call.arguments[@"filePath"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...