完成上面内容后,基本完成 Unify 使用的核心内容。下面我们将生成代码和在example工程中使用这些生成的代码。
生成代码,只需在 Unify 宿主工程根路径下执行脚本:
$ ./gen_uni_code.sh
若代码成功生成,将看到如下日志:
Deprecated. Use `dart run` instead.
Building package executable...
Built unify:unify.
Finished. \(≧▽≦)/
我们来看下 Unify 生成代码后的文件结构:
hello_uni_foundation
├── android
│ └── src
│ └── main
│ └── java
│ └── com
│ └── didi
│ └── hello_uni_foundation
│ ├── DeviceInfoModel.java
│ ├── DeviceInfoService.java
│ ├── DeviceInfoServiceRegister.java
│ ├── LocationInfoModel.java
│ ├── LocationInfoService.java
│ ├── UniAPI.java
│ └── uniapi
│ └── UniModel.java
├── interface
│ ├── device_info_model.dart
│ ├── device_info_service.dart
│ ├── location_info_model.dart
│ └── location_info_service.dart
├── ios
│ └── Classes
│ ├── DeviceInfoModel.h
│ ├── DeviceInfoModel.m
│ ├── DeviceInfoService.h
│ ├── DeviceInfoService.m
│ ├── HUFUniAPI.h
│ ├── HUFUniAPI.m
│ ├── HelloUniFoundationPlugin.h
│ ├── HelloUniFoundationPlugin.m
│ ├── LocationInfoModel.h
│ ├── LocationInfoModel.m
│ ├── LocationInfoService.h
│ └── LocationInfoService.m
└── lib
├── device_info_model.dart
├── device_info_service.dart
├── hello_uni_foundation.dart
├── hello_uni_foundation_method_channel.dart
├── hello_uni_foundation_platform_interface.dart
├── location_info_model.dart
├── location_info_service.dart
└── uniapi
├── Model.dart
├── UniCallback.dart
├── UniCallbackManager.dart
├── caches.dart
└── uni_api.dart
目录说明:
android:存放生成 Android 平台的代码
interface:存放 Unify 模板文件,代码是基于这些模板文件生成的。
ios:存放生成 iOS 平台的代码
lib:存放生成 Flutter 平台的代码
生成代码的存放位置 与
gen_uni_code.sh
脚本配置有关,可参考:[API CLI 最佳实践](../04.CLI 使用教程.md#API CLI 最佳实践)。
我们将 hello_uni_foundation 集成到 example 工程中。集成完成后,执行命令:
$ flutter pub get
这样,我们将 Unify 产物代码集成到 example 工程中了。再回顾下需求:
- 监听手机定位,定位更新后,主动将经纬度信息同步到 Flutter。
- Flutter 获取手机设备参数:系统版本、内存信息、手机型号。
如何实现上面的需求呢?还有些工作要做,我们继续。