Kri*_* CN 5 dart flutter flutter-platform-channel
使用 AWS SDK 在 Android 上创建用于文件上传的平台通道。现在我想在后台等待上传完成并返回结果的状态。
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result ->
if (call.method == "uploadToAWS") {
new DoUpload().execute();
// how to await here ?
result.success(true);
} else {
result.notImplemented()
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
不要在那里等待,而是删除“result.success(true);” 从那里声明并简单地将“结果”对象分配给您自己的“MethodChannel.Result”类型的对象。
然后使用它从任何地方执行其“成功”、“错误”或“未实现”方法,如下例所示。
public class Activity extends FlutterActivity {
private MethodChannel.Result myResult;
new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
.setMethodCallHandler(
(call, result) -> {
myResult = result;
}
);
private void myCustomMethod {
myResult.success(yourData);
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以从类中的任何位置使用这些 myResult.success()、myResult.error() 方法。
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |