如何在flutter中使用本机应用程序sdk



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

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

关于如何集成第三方SDK的分步指南,我写了这篇文章。https://www.solutelabs.com/blog/integrating-third-party-native-sdks-in-flutter

经过一些研究和分析。我成功地将sdk(.aar(文件集成到了flutter应用程序中。第三方SDK就是其中一个产品。SDK是用纯JAVA编写的。

在flutter中,我们必须使用方法通道将flutter应用程序与本机模块交互或扩展功能。

以下是集成SDK的步骤。

步骤:1

文档会说要创建一个flutter插件包装器。但我已经做了非常基础和直接的整合。

首先在android工作室中打开你的android文件夹(根级别(。示例路径项目>安卓

将.aar文件放在libs文件夹中(如果没有,则创建(。示例路径:项目>android>应用程序>libs

步骤2:

在应用程序文件夹中打开你的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

编辑你的飞镖文件。例如,我的flutter项目main.dart文件位于项目>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工作室或intelliji中运行你的flutter项目。用main.dart启动应用程序您可以在按下按钮时调用sdk。

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

我的颤振版本是1.22.6和飞镖2.10.5

相关内容

最新更新