我有一个网络电话要执行.但在此之前,我需要检查设备是否具有互联网连接.
这是我到目前为止所做的:
var connectivityResult = new Connectivity().checkConnectivity();// User defined class
if (connectivityResult == ConnectivityResult.mobile ||
connectivityResult == ConnectivityResult.wifi) {*/
this.getData();
} else {
neverSatisfied();
}
Run Code Online (Sandbox Code Playgroud)
以上方法不起作用.
我正在使用 macOS 并且正在安装 flutter。当我跑到“flutter doctor”时,我遇到了类似的错误
\n Doctor summary (to see all details, run flutter doctor -v):\n[\xe2\x9c\x93] Flutter (Channel stable, 3.13.5, on macOS 13.6 22G120 darwin-arm64, locale\n tr-TR)\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android SDK version 34.0.0)\n[!] Xcode - develop for iOS and macOS (Xcode 15.0)\n \xe2\x9c\x97 Unable to get list of installed Simulator runtimes.\n[\xe2\x9c\x93] Chrome - develop for the web\n[\xe2\x9c\x93] Android Studio (version 2022.3)\n[\xe2\x9c\x93] Connected device (2 available)\n[\xe2\x9c\x93] Network resources\nRun Code Online (Sandbox Code Playgroud)\n我不知道为什么。这个错误的根源是什么?
\n我正在尝试创建一个 Flutter 插件来使用本机库。我尝试使用的这个库存储在私有存储库中,可以与 Swift 依赖管理器一起使用。
这让我很头痛,因为我无法在我的插件中添加私有存储库依赖项(我找不到在 .podspec 文件中执行此操作的方法),所以我做了什么:
MyDependency.xcframework文件夹到MyPlugin/ios文件夹s.preserve_paths = 'MyDependency.xcframework'
s.xcconfig = { 'OTHER_LDFLAGS' => '-framework MyDependency' }
s.vendored_frameworks = 'MyDependency.xcframework'
Run Code Online (Sandbox Code Playgroud)
这样做我可以在插件的源代码中使用 MyDependency 。
我当前的问题是:这仅适用于 Simulator。
在此之前,该项目在真实设备上运行没有任何问题。
另外,我直接使用 Swift 依赖管理器中的依赖项进行了测试,并且运行良好。我认为问题在于我将框架添加到插件的方式。
我想知道是否有办法为flutter项目提供快速支持.我只在创建项目时启用了Kotlin支持.我也需要启用Swift.是否有我可以执行的命令或者我可以启用Android平台的flutter插件中的任何设置,或者是否有在Xcode中启用的选项?
这是我想要做的,但对于现有的Flutter项目
最近我更新到了 flutter 2.5 和最新的 androids studio,并尝试将我的 flutter 项目编译到 android 设备。Android studio 向我抛出以下错误。如果我flutter run在终端中写入,则编译到 Android 设备没有问题。
猜测这肯定和android studio有关。我尝试降级到较早的 android studio 版本,但问题仍然存在。
我不确定这是什么插件,它看起来不像我在项目中使用的任何插件。
编辑:如果我将 flutter 从 2.5 降级到 2.0,我的项目将再次编译。所以问题出在flutter 2.5之内
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Running Gradle task 'assembleDebug'...
../plugins/flutter/.pub-cache/hosted/pub.dartlang.org/photo_view-0.11.1/lib/src/core/photo_view_gesture_detector.dart:106:29: Error: The argument type 'PointerEvent' can't be assigned to the parameter type 'PointerDownEvent'.
- 'PointerEvent' is from 'package:flutter/src/gestures/events.dart' ('../plugins/flutter/packages/flutter/lib/src/gestures/events.dart').
- 'PointerDownEvent' is from 'package:flutter/src/gestures/events.dart' ('../plugins/flutter/packages/flutter/lib/src/gestures/events.dart').
super.addAllowedPointer(event);
Run Code Online (Sandbox Code Playgroud) 我在Flutter应用程序中添加了原生Android主屏幕小部件.
在我的AppWidgetProvider实现中,我想onUpdate()使用平台通道在我的方法中调用dart代码.
这可能吗?如果是这样,怎么能实现呢?
我目前的Android(Java)代码:
package com.westy92.checkiday;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.util.Log;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.view.FlutterNativeView;
public class HomeScreenWidget extends AppWidgetProvider {
private static final String TAG = "HomeScreenWidget";
private static final String CHANNEL = "com.westy92.checkiday/widget";
private static FlutterNativeView backgroundFlutterView = null;
private static MethodChannel channel = null;
@Override
public void onEnabled(Context context) {
Log.i(TAG, "onEnabled!");
backgroundFlutterView = new FlutterNativeView(context, true);
channel = new MethodChannel(backgroundFlutterView, CHANNEL);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, …Run Code Online (Sandbox Code Playgroud) 我创建flutter插件的时候,插件类中默认有两个方法:
override fun onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding)
Run Code Online (Sandbox Code Playgroud)
和
fun registerWith(registrar: Registrar)
Run Code Online (Sandbox Code Playgroud)
对文件的评论说:
It is encouraged to share logic between onAttachedToEngine and registerWith to keep them functionally equivalent. Only one of onAttachedToEngine or registerWith will be called depending on the user's project. onAttachedToEngine or registerWith must both be defined in the same class.
现在,我需要从这里开始另一项活动,使用activity.startActivityForResult(). 可以在registerWith(registrar: Registrar)使用中获得对活动的引用registrar.activity()。我怎样才能在方法中做到这一点onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding)?
我正在开发一个 Flutter 插件(仅适用于 Android),当设备连接到特定的蓝牙设备时,它会自动执行 Flutter 任务。
以下是我在插件的Android端所做的事情:
BroadcastReceiver监听蓝牙事件的函数。<receiver android:name=".BluetoothBroadcastReceiver">
<intent-filter>
<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
<action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
<action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
EventChannel并设置了StreamHandler. 然后,我保留的函数EventSink中提供的的引用。这允许我将数据从插件的 Android 端发送到插件的 Flutter 端。onListenStreamHandlerclass BluetoothPlugin : FlutterPlugin {
override fun onAttachedToEngine(flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
EventChannel(flutterPluginBinding.binaryMessenger, "event_channel_bluetooth_event")
.setStreamHandler(object : StreamHandler {
override fun onListen(arguments: Any?, eventSink: EventChannel.EventSink) {
BluetoothPlugin.eventSink = eventSink
}
override fun onCancel(arguments: Any?) {}
})
}
companion object {
var eventSink: EventChannel.EventSink? = …Run Code Online (Sandbox Code Playgroud) 这可能是这个问题的重复。但它没有答案,我将在这里提供一些细节。
我在我的 Flutter 插件的 android 项目中创建了一个带有File->New Module->Android Library 的模块。现在我有一个如下结构:
|-my_plugin
|-android
|-settings.gradle
|-build.gradle
|-mylibrary
|-build.gradle
Run Code Online (Sandbox Code Playgroud)
/android/settings.gradle:
rootProject.name = 'my_plugin'
include ':mylibrary'
Run Code Online (Sandbox Code Playgroud)
/android/build.gradle:
...
dependencies {
implementation project(':mylibrary')
}
Run Code Online (Sandbox Code Playgroud)
当我使用flutter build apk或flutter run构建示例插件项目(由 Flutter CLI 自动创建)时,出现此错误:
Project with path ':mylibrary' could not be found in project ':my_plugin'.
Run Code Online (Sandbox Code Playgroud)
有什么建议?
flutter ×10
flutter-plugin ×10
dart ×3
android ×2
flutter-ios ×1
gradle ×1
podfile ×1
podspec ×1
swift ×1