flutter - MissingPluginException(MissingPluginException(在通道 dexterx.dev/trail 上找不到方法 getTimeZoneName 的实现))
问题描述
我正在使用颤振本地通知进行调度,当我使用 MethodChannel 实例时出现异常。
主要功能:
const MethodChannel platform = MethodChannel('dexterx.dev/apptrail');
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await _configureLocalTimeZone();
runApp(MyApp());
}
_configureLocalTimeZone 函数是:
Future<void> _configureLocalTimeZone() async {
tz.initializeTimeZones();
final String timeZoneName = await platform.invokeMethod('getTimeZoneName');
tz.setLocalLocation(tz.getLocation(timeZoneName));
}
例外是:
Exception has occurred.
MissingPluginException (MissingPluginException(No implementation found for method getTimeZoneName on channel dexterx.dev/trail))
解决方案
flutter_local_notifications
具有本机实现部分的示例代码
您可以参考
https://github.com/MaikuB/flutter_local_notifications/blob/ac730a0298edd8335cde07a09a396c46cc8c9292/flutter_local_notifications/example/android/app/src/main/kotlin/com/dexterous/flutter_local_notifications_example/MainActivity.kt# L23
class MainActivity: FlutterActivity() {
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "dexterx.dev/flutter_local_notifications_example").setMethodCallHandler { call, result ->
if ("drawableToUri" == call.method) {
val resourceId = this@MainActivity.resources.getIdentifier(call.arguments as String, "drawable", this@MainActivity.packageName)
result.success(resourceToUriString(this@MainActivity.applicationContext, resourceId))
}
if ("getAlarmUri" == call.method) {
result.success(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM).toString())
}
if ("getTimeZoneName" == call.method) {
result.success(TimeZone.getDefault().id)
}
}
}
推荐阅读
- rust - 如何匹配宏中的点并重建原始令牌集?
- django - 在保存期间标记 django 模型实例以供以后处理
- javascript - 使用正则表达式获取 JavaScript 中字符之间的内容,并用变量字符串替换它们
- html - html页面上的分散文本
- angular - 将 JWT 令牌存储到 HttpOnly cookie 中
- node.js - 无服务器上 Promise.race() 的问题/错误(从以前的调用加载缓存)
- regex - Yara 规则 - 正则表达式 - 匹配 IP 地址的前两个八位字节
- python - 用于 aiogram 中状态的 SQLite 存储
- javascript - API:Laravel 中的 Ajax 帖子 - 403(禁止)
- amazon-web-services - Okta:在 S3 上托管静态网站时出现 403 错误