我在Android中有一个后台服务,我调用我的Flutter Dart代码使用
var methodChannel = MethodChannel("org.companyname.app.backgroundlocation");
methodChannel.invokeMethod("startBackgroundService", {
"encKey" : encryptionKey
});
字符串
我使用一个名为simple rsa的flutter库来加密位置。然而,Android似乎没有一个等价的。所以,我的问题是:
- 我可以从我的Android代码调用Dart代码吗?就像我使用Flutter MethodChannel调用Android代码一样?*
我已经检查了this github问题,但没有实际的答案,我可以找到。
2条答案
按热度按时间ljsrvy3e1#
我不知道它有多有效,但它确实有效:D
字符串
dart端有一个init函数,如下所示:
型
这些链接帮助了我:
6ss1mwsb2#
字符串
我注意到这一点,同时将无头执行纳入我自己的插件通知。似乎一旦后台服务调用这个方法,使headless Dart代码能够激发依赖于其他插件的代码,在前台平台通道上调用invokeMethod就不再起作用了。我不知道什么解决方案是在这里,或者可能有一个问题,与引擎本身
[✓] Flutter(Channel beta,v0.9.4,on Mac OS X 10.14 18A391,locale en-AU)· Flutter version 0.9.4 at /Users/michaelbui/flutter · Framework revision f37c235c32(5 weeks ago),2018-09-25 17:45:40 -0400 · Engine revision 74625aed32 · Dart version 2.1.0-dev.5.0.flutter-a2eb050044
[✓] Android工具链-为Android设备开发(Android SDK 27.0.3)· Android SDK位于/Users/michaelbui/Library/Android/sdk · Android NDK位置未配置(可选;对于本机分析支持有用)·平台android-28,build-tools 27.0.3 · ANDROID_HOME = /Users/michaelbui/Library/Android/sdk · Java二进制文件位于:/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java· Java版本OpenJDK Runtime Environment(build 1.8.0_152-release-1136-b 06)·接受所有Android许可证。
[✓] iOS toolchain - develop for iOS devices(Xcode 10.1)· Xcode at /Applications/Xcode.app/Contents/Developer· Xcode 10.1,Build version 10B61 · ios-deploy 1.9.2 · CocoaPods version 1.5.0
[✓] Android Studio(版本3.2)· Android Studio at /Applications/Android Studio.app/Contents· Flutter插件版本27.1.1 · Dart插件版本173.4700 · Java版本OpenJDK运行时环境(构建1.8.0_152-release-1136-b 06)
[✓] IntelliJ IDEA社区版(版本2017.3.5)· IntelliJ at /Applications/IntelliJ IDEA CE.app· Flutter插件版本23.0.2 · Dart插件版本173.4700
[✓] VS Code(版本1.28.2)· VS Code at /Applications/Visual Studio Code.app/Contents· Flutter扩展版本2.20.0
[✓]连接的设备(1可用)·像素2 XL ·711 KPXV 0530842·android-arm 64· Android 9(API 28)
·未发现问题!check this out