Flutter应用活动启动插件app_activity_launcher的使用
Flutter应用活动启动插件app_activity_launcher的使用
app_activity_launcher
app_activity_launcher
是一个用于在Android上启动外部应用程序和活动的Flutter插件。通过此插件,您可以轻松地启动外部应用、启动特定应用内的活动、打开设备的应用商店以获取指定应用,以及向外部应用传递数据。
功能特性
- 启动外部应用
- 在特定活动中启动外部应用
- 打开设备的应用商店以获取指定应用
- 向外部应用传递额外数据
开始使用
要使用此插件,您需要在 pubspec.yaml
文件中添加依赖项:
dependencies:
app_activity_launcher: ^0.0.2
启动外部应用
import 'package:app_activity_launcher/app_activity_launcher.dart';
final _app = AppActivityLauncher();
// 启动外部应用
await _app.openApp(appId: "com.example.app"); // 如果有错误,则返回false
在特定活动中启动外部应用
import 'package:app_activity_launcher/app_activity_launcher.dart';
final _app = AppActivityLauncher();
// 在特定活动中启动外部应用
await _app.openActivity(appId: "com.example.app", activity: "MainActivity");
打开设备的应用商店以获取指定应用
import 'package:app_activity_launcher/app_activity_launcher.dart';
final _app = AppActivityLauncher();
// 打开设备的应用商店以获取指定应用
await _app.openMarket(appId: "com.example.app");
向外部应用传递额外数据
import 'package:app_activity_launcher/app_activity_launcher.dart';
final _app = AppActivityLauncher();
// 向外部应用传递额外数据
Map<String, String> extras = {
"url": "https://example.com/videos/master.mp4"
};
await _app.openActivity(
appId: "com.example.app",
activity: "PlayerActivity",
extras: extras
);
完整示例代码
以下是一个完整的示例代码,展示了如何使用 app_activity_launcher
插件来启动外部应用并传递数据。
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:app_activity_launcher/app_activity_launcher.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _app = AppActivityLauncher();
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('插件示例应用'),
centerTitle: true,
),
body: Center(
child: ElevatedButton(
onPressed: _openVibePlyr,
child: const Text("启动VibePlyr"),
),
),
),
);
}
_openVibePlyr() async {
var res = await _app.openActivity(
appId: "io.mediaon.vibeplyr",
activity: "PlayerActivity",
extras: {
"url":
"https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_1MB.mp4"
});
print(res);
}
}
更多关于Flutter应用活动启动插件app_activity_launcher的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter应用活动启动插件app_activity_launcher的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter应用中使用app_activity_launcher
插件来启动其他应用的Activity的示例代码。这个插件允许你从Flutter代码中启动Android特定的Activity。
首先,确保你已经在pubspec.yaml
文件中添加了app_activity_launcher
依赖:
dependencies:
flutter:
sdk: flutter
app_activity_launcher: ^x.y.z # 替换为最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要在Android项目中配置你想要启动的Activity。假设你有一个自定义的Activity MyCustomActivity
,并且这个Activity在AndroidManifest.xml
中声明如下:
<activity android:name=".MyCustomActivity">
<intent-filter>
<action android:name="com.example.MY_CUSTOM_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
现在,你可以在Flutter代码中使用app_activity_launcher
来启动这个Activity。以下是一个完整的示例:
import 'package:flutter/material.dart';
import 'package:app_activity_launcher/app_activity_launcher.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('App Activity Launcher Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _launchMyCustomActivity,
child: Text('Launch MyCustomActivity'),
),
),
),
);
}
Future<void> _launchMyCustomActivity() async {
try {
final result = await AppActivityLauncher.startActivity(
androidPackageName: 'com.example.yourapp', // 替换为你的应用包名
androidClassName: 'com.example.yourapp.MyCustomActivity', // 替换为你的Activity完整类名
action: 'com.example.MY_CUSTOM_ACTION', // 替换为你的intent-filter中的action
// 你可以添加额外的数据,如果需要的话
// data: Uri.parse('some_uri'),
// extras: {
// 'key': 'value',
// },
);
// 处理启动结果(如果有返回结果的话)
print('Activity launched with result: $result');
} catch (e) {
// 处理错误
print('Failed to launch activity: $e');
}
}
}
在这个示例中:
androidPackageName
是你的应用的包名。androidClassName
是你想要启动的Activity的完整类名(包括包名)。action
是与你在AndroidManifest.xml
中声明的intent-filter
中的action
相匹配的字符串。
请注意,AppActivityLauncher.startActivity
方法返回一个Future
,这意味着启动Activity是一个异步操作。如果Activity有返回结果,你可以通过result
变量来处理这些结果(具体取决于你的Activity如何处理返回结果)。
确保在实际应用中替换示例代码中的包名和类名为你自己的值。此外,如果你的Activity需要额外的数据(如extras),你可以在startActivity
方法的参数中添加这些数据。