[英]Cannot find type 'ParseCloud' in scope - Back4App ios implementation
[英]Flutter cannot find a native iOS implementation of method
我尝试从我的Flutter插件的Swift 一侧返回一个字符串到 Dart的:
public class SwiftAMPlugin: NSObject, FlutterPlugin {
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "aM", binaryMessenger: registrar.messenger())
let instance = SwiftAMPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
private func getStr(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
result("test");
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
switch (call.method) {
case "getStr":
getStr(call, result: result);
break;
default:
result(false);
}
}
}
在Dart方面:
static Future<String> getStr() async {
try {
return await _channel.invokeListMethod('getStr');
} catch(e, s) {
print(e);
print(s);
}
}
但它在getStr
调用时崩溃并出现错误:
2020-05-24 00:05:17.547324+0300 Runner[4146:2064989] flutter: MissingPluginException(No implementation found for method getStr on channel aM)
2020-05-24 00:05:17.552161+0300 Runner[4146:2064989] flutter: #0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:154:7)
我对Android有类似的实现,并且效果很好。
问题可能出在哪里?
PS Imma noobie in Flutter ,也许我需要在某处描述我的本机方法实现? 现在我只有switch
块来找到所需的方法。
@Шах 你检查过你pubspec.yaml
吗? 您应该有一个 iOS 的条目,如下所示:
plugin:
platforms:
ios:
package: com.domain.my_lib
pluginClass: MyPlugin
android:
package: com.domain.my_lib
pluginClass: MyPlugin
确保它是正确的 class 和正确的 package。 然后做flutter clean
和flutter run
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.