Flutter插件hailify的介绍及使用
Description
此插件允许您的Flutter客户端应用程序集成Hailify任务交付功能。通过Hailify,您可以轻松地将物流功能嵌入到您的应用中。
支持的平台
- Android [部署在Android 6(Marshmallow)或更高版本]
- iOS [部署在iOS 13或更高版本]
Step 1: 添加Hailify包到您的应用
要使用此插件,请在pubspec.yaml
文件中添加以下依赖项:
dependencies:
hailify: ^0.0.1
Android安装
在android/build.gradle
文件中,添加以下内容到allprojects/repositories
部分:
maven {
url 'https://hailifyfleet.jfrog.io/artifactory/hailifyfleet'
// Hailify会为您提供用户名和密码以下载SDK
credentials{
username "USER_NAME"
password "PASSWORD"
}
}
iOS安装
- 在
ios/Podfile
中添加以下内容:
use_frameworks!
# 设置所有Pod的目标为 'BUILD_LIBRARY_FOR_DISTRIBUTION' = 'YES'
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
- 在终端中运行以下命令以安装依赖:
pod install
注意: 如果尚未添加以下权限,请在ios/Runner/Info.plist
中添加。如果已经存在,请忽略。
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>此应用收集您的位置数据以改善取件和派送,并增强安全性。您可以在设备设置中随时关闭位置服务。</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>此应用收集您的位置数据以改善取件和派送,并增强安全性。您可以在设备设置中随时关闭位置服务。</string>
<key>NSCameraUsageDescription</key>
<string>此应用将使用相机拍摄照片以确认包裹交付。</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>此应用将使用相册选择交付包裹。</string>
此外,在Xcode的Capabilities
选项卡中启用后台定位。
Step 2: 导入插件
在主文件或需要使用Hailify的地方导入插件:
import 'package:hailify/hailify.dart';
Step 3: 初始化SDK
使用您的公司名称和提供的令牌初始化Hailify SDK:
Hailify.initilize("<fleet-name>", "<fleet-token>");
注意: Hailify将提供沙盒环境和生产环境的SDK密钥和令牌。
Step 4: 设置司机ID
设置与组织注册的司机ID:
Hailify.setDriverId("<driver-id>");
Step 5: 打开订单视图
调用此方法以显示订单弹窗:
Hailify.showOrderPopup();
注意: 应在从分配司机端点(AssignBooking)收到成功响应后调用此方法。
沙箱环境
启用或禁用沙箱环境以测试订单:
Hailify.enableSandbox(true/false);
默认值为false
。
位置引擎
允许Hailify SDK使用其内置的位置引擎:
Hailify.useSDKLocationEngine(true/false);
默认值为false
。如果禁用,则可以手动设置位置:
Hailify.useSDKLocationEngine(false);
Hailify.setLocation(latitude, longitude, accuracy);
初始化交付视图
在应用中添加交付视图:
Hailify.initializeDeliveryView(() => {
// 初始化完成后执行的操作
});
导航监听器(可选)
自定义导航选项:
Hailify.setNavigationListener((latitude, longitude) => {
log("导航位置: " + latitude.toString() + ", " + longitude.toString());
});
注意: 必须在交付视图成功初始化后设置此监听器。
订单状态监听器(可选)
获取当前订单的状态更新:
Hailify.setOrderStatusListener((orderStatus, orderId) => {
log("订单状态: " + orderStatus + ", 订单ID: " + orderId);
});
订单完成监听器(可选)
订单完成后的回调:
Hailify.setCompleteListener(() => {
log("订单完成处理程序");
});
呼叫监听器(可选)
自定义呼叫选项:
Hailify.setCallListener((number) => {
log("电话号码: " + number);
});
获取订单状态(可选)
在任何时间获取当前订单状态:
Hailify.getCurrentOrderStatus.then((status) => {
log("当前订单状态: " + status.toString());
});
设置交付视图的高度(可选)
根据需求设置交付视图的高度:
Hailify.setMaxHeightPercentage(80);
交付状态
状态 | 描述 |
---|---|
booked | 订单已创建,快递员即将出发 |
to_pickup | 快递员正在前往取件地点 |
at_pickup | 快递员已在取件地点 |
to_delivery | 快递员已取件,正在前往交付地点 |
at_delivery | 快递员已在交付地点 |
to_return | 快递员返回途中 |
returned | 订单已退回 |
delivered | 订单已完成 |
cancelled | 订单已取消 |
failed | 因商户或客户问题未完成订单 |
快速示例
以下是一个完整的示例代码:
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
Future<void> initPlatformState() async {
try {
Hailify.initilize("<fleet-name>", "<fleet-token>");
Hailify.enableSandbox(true);
Hailify.useSDKLocationEngine(true);
Hailify.setDriverId("<driver-id>");
Hailify.initializeDeliveryView(() => {
Hailify.setMaxHeightPercentage(90)
});
Hailify.setCallListener((number) => {
log("电话号码: " + number)
});
Hailify.setOrderStatusListener((orderStatus, orderId) => {
log("订单状态: " + orderStatus + ", 订单ID: " + orderId)
});
Hailify.setNavigationListener((latitude, longitude) => {
log("导航位置: " + latitude.toString() + ", " + longitude.toString())
});
Hailify.setCompleteListener(() => {
log("订单完成处理程序")
});
Hailify.showOrderPopup();
Hailify.getCurrentOrderStatus.then((status) => {
log("当前订单状态: " + status.toString())
});
} on PlatformException {}
}
[@override](/user/override)
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: TextButton(child: Text('Hello World'), onPressed: null),
),
),
);
}
}
更多关于Flutter插件hailify的介绍及使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter插件hailify的介绍及使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,hailify
并不是一个广为人知或官方支持的插件。如果你在某个项目或文档中遇到了这个插件,可能是因为它是一个自定义的插件或者是一个内部使用的插件。以下是一些探索和使用未知插件(如 hailify
)的步骤:
1. 查找文档或源代码
- 查找文档: 首先,尝试查找插件的官方文档或说明。通常,插件的文档会提供如何使用它的详细信息。
- 查看源代码: 如果插件是开源的,你可以查看其源代码。Flutter插件通常托管在GitHub或其他代码托管平台上。通过查看源代码,你可以了解插件的功能和使用方法。
2. 在 pubspec.yaml
中添加依赖
如果你找到了插件的发布地址(例如在 pub.dev
上),你可以在 pubspec.yaml
文件中添加依赖项。例如:
dependencies:
flutter:
sdk: flutter
haility: ^1.0.0 # 假设版本号为1.0.0
然后运行 flutter pub get
来获取插件。
3. 导入插件并使用
在Dart文件中导入插件并使用它。例如:
import 'package:hailify/hailify.dart';
void main() {
// 使用插件的功能
Hailify.doSomething();
}