标签: flutter-plugin

如何在flutter插件中使用本地aar?

我用以下方法创建了一个flutter插件:

flutter create --template plugin flutter_plugin
Run Code Online (Sandbox Code Playgroud)

我已经将aar文件放入flutter_plugin / android / src / main / libs文件夹中,
我已经修改了flutter_plugin / android / build.gradle

并将rootProject.allprojects部分更改为

rootProject.allprojects {                                                                                               
     repositories {                                                                                                      
         google()                                                                                                        
         jcenter()                                                                                                       
         flatDir {                                                                                                       
             dirs "src/main/libs"                                                                                  
         }                                                                                                               
     }                                                                                                                   
}  
Run Code Online (Sandbox Code Playgroud)

并在android {}之后添加了依赖项部分:

dependencies {                                                                                                          
     implementation (name:"mylib",ext:"aar")                                                                     
} 
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行时:flutter run

我收到gradle异常,显然它试图在示例目录:example / src / main / libs / mylib.aar中寻找我的mylib.aar并失败。

我可以将lib放在示例dir中,但我认为这不是正确的方法,因为我希望我的aar成为插件的一部分。

android flutter flutter-plugin

5
推荐指数
3
解决办法
1423
查看次数

找不到Flutter插件`geolocator-Swift.h`文件

我创建了一个小的Flutter插件,可以用来监视Flutter应用程序中的位置变化(来源:https://github.com/baseflowit/flutter-geolocator).在使用作为项目结构一部分的示例项目(由Flutter CLI生成)进行大量测试之后,我们决定发布该插件以使其可供全世界使用.

现在我们收到一些反馈,当您将在线Dart Packages repo中的软件包包含到Flutter App中时,iOS版本不会编译并返回以下异常:

/Users/maurits/Developer/flutter/.pub-cache/hosted/pub.dartlang.org/geolocator-0.0.2/ios/Classes/GeolocatorPlugin.m:2:9:
fatal error: 'geolocator/geolocator-Swift.h' file not found
Run Code Online (Sandbox Code Playgroud)

在调试模式下运行Flutter App时会发生此错误,但在使用iOS包时也会发生此错误flutter build ios --release.

我有点迷失这个错误的地方,因为example作为Geolocator项目一部分的应用程序没有任何问题.我知道该geolocator/geolocator-Swift.h文件是自动生成的,所以对我而言,文件似乎不会在最终的Dart包中结束.要运行最终的Dart包,我运行以下命令:

flutter packages pub publish

这是输出flutter doctor -v:

[?] Flutter (Channel beta, v0.5.1, on Mac OS X 10.13.5 17F77, locale en-NL)
    • Flutter version 0.5.1 at /Users/maurits/Developer/flutter
    • Framework revision c7ea3ca377 (4 weeks ago), 2018-05-29 21:07:33 +0200
    • Engine revision 1ed25ca7b7
    • Dart version 2.0.0-dev.58.0.flutter-f981f09760

[?] Android toolchain …
Run Code Online (Sandbox Code Playgroud)

ios flutter flutter-plugin

5
推荐指数
2
解决办法
2613
查看次数

Flutter iOS 构建在运行 pod install 时失败

我正在尝试制作一个 flutter 插件,所以我通过https://flutter.dev/docs/development/packages-and-plugins/developing-packages 上提供的步骤创建了一个插件。当我尝试运行 ios 示例时出现错误。下面是我在运行 ios 示例应用程序时得到的日志。

谁能帮我这个?

Running pod install...
CocoaPods' output:
    Analyzing dependencies

    Inspecting targets to integrate
      Using `ARCHS` setting to build architectures of target `Pods-Runner`: (``)

    Fetching external sources
    -> Fetching podspec for `Flutter` from `.symlinks/flutter/ios`
    -> Fetching podspec for `flutter_plugin` from `.symlinks/plugins/flutter_plugin/ios`

    Resolving dependencies of `Podfile`

    Comparing resolved specification to the sandbox manifest
      A Flutter
      A flutter_plugin

    Downloading dependencies

    -> Installing Flutter (1.0.0)

    -> Installing flutter_plugin (0.0.1)
      - Running pre-install hooks
    [!] Unable …
Run Code Online (Sandbox Code Playgroud)

ios dart flutter flutter-plugin flutter-build

5
推荐指数
4
解决办法
1万
查看次数

如何将原生框架/库添加到 flutter 插件(不是使用 cocoapods)?

我是 Flutter 的新手。我有本机框架(iOS 和 Android),可以在本机项目中成功运行。我需要创建这些框架并将其合并到插件中,以便可以在任何 Flutter 项目中使用该插件来使用框架的功能。

实现这一目标的任何帮助都将是有益和可观的。

谢谢。

android ios flutter flutter-dependencies flutter-plugin

5
推荐指数
0
解决办法
105
查看次数

如何在 Xcode 中打开 flutter 插件?

我想对插件进行一些更改。对于安卓部分,一切都清楚了。但是如何打开插件的 iOs 部分呢?没有 Xcode 项目,只有几个 .h 和 .m 文件。

如何在 Xcode 中打开 iOs 插件?

https://github.com/flutter/plugins/tree/master/packages/video_player/video_player/ios

flutter flutter-plugin

5
推荐指数
2
解决办法
2171
查看次数

在 Flutter 中编辑 3rd 方插件

我想编辑一个插件以适应我的应用程序。我只是通过 CTRL+单击 flutter 中的插件导入代码并编辑所需的 .dart 文件来做到这一点。

现在我想知道,这是否可以在未来被覆盖。

路径(我编辑 dart 文件的地方)是:

flutter > .pub-cache > hosted > pub.dartlang.org > PLUGIN NAME > lib > templates > FILENAME.dart
Run Code Online (Sandbox Code Playgroud)

这是编辑插件的正确方法吗?或者我应该在哪里编辑 .dart 文件?

感谢帮助!

flutter flutter-plugin

5
推荐指数
1
解决办法
447
查看次数

如何在后台使用 Flutter Method Channel(应用最小化/关闭)

我正在 Flutter 应用程序中开发本机 Android 小部件。其中有刷新按钮,点击后我必须在 Flutter 代码中调用一个方法。我正在使用 Flutter Method Channel 进行通信,并且当应用程序处于前台时它工作正常。但是当应用程序最小化或关闭时它不起作用。我收到错误PlatformException(NO_ACTIVITY, null, null)。下面是我的代码。

安卓(AppWidgetProvider)

if (methodChannel == null && context != null) {
        FlutterMain.startInitialization(context)
        FlutterMain.ensureInitializationComplete(context, arrayOf())

        // Instantiate a FlutterEngine.
        val engine = FlutterEngine(context.applicationContext)

        // Define a DartEntrypoint
        val entrypoint: DartEntrypoint = DartEntrypoint.createDefault()

        // Execute the DartEntrypoint within the FlutterEngine.
        engine.dartExecutor.executeDartEntrypoint(entrypoint)

        // Register Plugins when in background. When there
        // is already an engine running, this will be ignored (although there will be some
        // warnings in the …
Run Code Online (Sandbox Code Playgroud)

android dart flutter flutter-plugin flutter-method-channel

5
推荐指数
1
解决办法
3485
查看次数

在 Flutter Plugin 的 IOS 组件中何处以及如何包含文件资源?

假设您正在用 Swift 编写 Flutter 插件的 IOS 组件。

您已在 XCode 中打开 MyFlutterPlugin.swift 文件。

为了让我们知道我们在谈论同一件事,文件如下所示:

public class MyFlutterPlugin: NSObject, FlutterPlugin {

    public static func register(with registrar: FlutterPluginRegistrar) {
        let channel = FlutterMethodChannel(name: "my_flutter_plugin", binaryMessenger: registrar.messenger())
        let instance = SwiftMetronomeFlutterPlugin()
        registrar.addMethodCallDelegate(instance, channel: channel)
    }

    public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {

    // ...

    }

}
Run Code Online (Sandbox Code Playgroud)

该文件存在于磁盘上:

[your_plugin_project_name]/ios/classes/MyFlutterPlugin.swift

如何添加资源,例如音频 (WAV) 文件,以便可以从 MyFlutterPlugin.swift 中引用它?

在普通(非 Flutter)IOS 应用程序中,我只需将 WAV 文件拖到 XCode 中(它与 ViewController.swift 位于同一文件夹中)即可完成此操作,并从 ViewController 中引用它,如下所示:

let clack_Path = Bundle.main.path(forResource: "clack", ofType: "wav")
let …
Run Code Online (Sandbox Code Playgroud)

filepath ios swift flutter flutter-plugin

5
推荐指数
1
解决办法
2062
查看次数

如何*准确地*从 Android Java *插件* 平台代码中访问 Flutter 资源?

我们想要定义一个可以从同一插件中的 Android 平台代码访问的 Flutter 资源。据称该文档位于此处

请注意,我们不是在讨论 flutter 应用程序中的自定义平台代码——我们是从插件作者的角度讨论 flutter 插件代码。

因此,按照文档,我们从位于 [your_plugin_root_dir]\pubspec.yaml 的插件的 pubspec.yaml 文件开始,然后添加资产定义:

  assets:
    - assets/sound.wav
Run Code Online (Sandbox Code Playgroud)

这指向 [your_plugin_root_dir]\assets\sound.wav 中的现有文件

到目前为止一切都很好,但是我们遇到了一个问题:

当您在 Android studio 中创建新的 Flutter Plugin项目时,该插件的 Android Java 文件如下所示:

public class PluginTestPlugin implements FlutterPlugin, MethodCallHandler {
  /// The MethodChannel that will the communication between Flutter and native Android
  ///
  /// This local reference serves to register the plugin with the Flutter Engine and unregister it
  /// when the Flutter Engine is detached from the Activity …
Run Code Online (Sandbox Code Playgroud)

java android assets flutter flutter-plugin

5
推荐指数
1
解决办法
2041
查看次数

用于下载种子的 Flutter 插件

我想开发一个 flutter 应用程序来搜索和下载 torrent 文件。搜索部分已完成,但现在我不知道如何实现下载功能。

我想下载 torrent 文件或磁力链接指向的实际文件。例如,我希望应用程序从给定的 torrent 文件或给定的磁力链接下载 Linux 发行版。

是否有任何插件,或者我需要自己构建它?如果我需要创建一个,那么如何?

torrent flutter flutter-plugin

4
推荐指数
1
解决办法
3164
查看次数