如何在Flutter中使用本机应用程序SDK

我有一个本机sdk,我正在将该sdk集成到flutter中,但它会出错。 还有什么其他方法可以将第三方sdk集成到Flutter中

FLH123456789 回答:如何在Flutter中使用本机应用程序SDK

要集成第三方本地SDK,您必须遵循Platform Channel方法。

有关如何集成第三方SDK的逐步指南,我已经撰写了本文。 https://blog.solutelabs.com/integrating-third-party-native-sdks-in-flutter-df418829dcf7

,

在进行了一些研究和分析之后。我成功地将 sdk(.aar) 文件集成到 flutter 应用程序中。第三方 SDK 是其中一种产品。 SDK采用纯JAVA编写。

在 Flutter 中,我们必须使用 Methodchannel 将 Flutter 应用程序与原生模块进行交互或扩展功能。

以下是集成 SDK 的步骤。

步骤:1

文档会说要创建一个 flutter 插件包装器。但我已经完成了非常基本和直接的集成。

首先在 android studio 中打开您的 android 文件夹(根级别)。示例路径 project>android

将您的 .aar 文件放在 libs 文件夹中(如果没有则创建)。 示例路径:project>android>app>libs

第 2 步:

打开 app 文件夹中的 build.gradle 文件并添加以下行

    rootProject.allprojects{
          ...       
          repositories {
              flatDir {
                 dirs 'libs'
              }
          }
     }
     dependencies {
         ...
          // add your sdk dependencies too
          implementation files("libs/app-release.aar")
     }

之后,同步项目。

步骤:3

现在在新窗口中打开您的 flutter 项目。编辑您的 MainActivity.kt 文件

    import com.mypackage.MySDKStartActivity;

     private val CHANNEL = "yourMethodChannelName"
     override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
         super.configureFlutterEngine(flutterEngine)
         MethodChannel(flutterEngine.dartExecutor.binaryMessenger,CHANNEL).setMethodCallHandler { call,result ->
              if (call.method == "methodName") {
                 val arg1 : String? = call.argument("arg1");
                 val arg2 : String? = call.argument("arg2");
                 startNewActivity(arg1,arg1); // Method to start the SDK
              }
         }
    }
    
    private fun startNewActivity(arg1: String?,arg2: String?) {
       val intent = Intent(context,MySDKStartActivity::class.java)
       intent.putExtra("param1",arg1); // send some data to the sdk if it required
       intent.putExtra("param2",arg2);
       startActivity(intent);
    }

步骤:4

编辑您的 dart 文件。例如我的颤振项目 main.dart 文件,它位于 project>lib>main.dart

      static const platform = const MethodChannel('smsAggregationChannel');
      @override
      Widget build(BuildContext context) {
            …
            ElevatedButton(
                   child: Text('Start Aggregate'),onPressed: _startAggregation,)
      }

      Future<void> _startAggregation() async {
          try {
             final String arg1 = "<arg1>";
             final String arg2 = "<arg2>";

             await platform.invokeMethod('startAggregation',{// start the aggregation with args
                   'arg1': arg1,'arg2': agr2
             });

         } on PlatformException catch (e) {
               print("Failed to start SDK");
         }
     }

在所有更改完成后。在 android studio 或 intelliji 中运行你的 flutter 项目。使用 main.dart 启动应用程序您可以在按下按钮时调用 sdk。

如果出现任何问题,请尝试清除 (flutter clean) 抖动并重新运行应用程序。

我的 flutter 版本是 1.22.6 和 Dart 2.10.5

本文链接:https://www.f2er.com/3112877.html

大家都在问