Flutter功能扩展插件finpong_plus的使用
Flutter功能扩展插件finpong_plus的使用
1. 事前准备
1.1 在pubspec.yaml
中添加
确保在项目的pubspec.yaml
文件中添加finpong_plus
插件。
dependencies:
finpong_plus: ^x.y.z
或者通过终端命令安装:
$ flutter pub add finpong_plus
1.2 注册应用Schema
为了在认证完成后返回到您的应用,需要在不同的操作系统上注册应用的Schema。
Android - 在AndroidManifest.xml
中设置
在MainActivity
的<activity>
标签内添加以下内容:
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="your-app-scheme"/>
</intent-filter>
iOS - 在info.plist
中设置
在CFBundleURLTypes
中添加您的应用Schema,并在LSApplicationQueriesSchemes
中添加认证应用的Schema:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>com.finpong.finpongPlusExample</string>
<key>CFBundleURLSchemes</key>
<array>
<string>your-app-scheme</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>naversearchthirdlogin</string>
<string>supertoss</string>
<string>finpongapp</string>
<string>tauthlink</string>
<string>ktauthexternalcall</string>
<string>upluscorporation</string>
<string>kakaotalk</string>
</array>
2. 运行FinpongPlus
2.1 在应用中添加FinpongPlusWidget
首先,确保您已经获得了有效的token。然后,在应用中添加FinpongPlusWidget
。
import 'package:finpong_plus/finpong_plus.dart';
FinpongPlusWidget(
token: 'eyJ0e...QINWU',
finpongPlusController: finpongPlusController,
entry: '1',
serverMode: ServerMode.staging,
backgorundColor: Colors.white,
onUriScheme: (type, scheme) {
/**
* 该函数用于处理应用Schema调用。
* 如果应用已安装,则启动应用Schema。
* 如果未安装,则引导用户到应用商店下载。
*/
canLaunchUrl(Uri.parse(scheme)).then((bool result) {
setState(() async {
if (result) {
if (!await launchUrl(Uri.parse(scheme), mode: LaunchMode.externalApplication)) {
throw Exception('Could not launch $scheme');
}
} else {
!await launchUrl(
Uri.parse('type별 스토어 url'),
mode: LaunchMode.externalApplication,
);
}
});
});
},
onCustomAction: (pageId, params) {
// 处理预定义的FinpongPlus动作
switch(pageId){
case 'ACT1000':
// 处理ACT1000动作
break;
case 'ACT2000':
// 处理ACT2000动作
break;
...
}
},
onCloseAction: () {
// 当FinpongPlus关闭时触发
Navigator.pop(context);
},
onPageLoadStarted: () {
// 页面加载开始时触发
},
onPageLoadFinished: () {
// 页面加载完成时触发
isLoading.value = false;
},
)
2.2 entry
参数说明
entry
参数用于指定初始页面。具体值及其对应的页面如下:
entry | 进入页面 | 示例 |
---|---|---|
“0” | 默认页面 | 保险主页 |
“1” | 自定义页面 | 数据连接管理页 |
2.3 serverMode
参数说明
serverMode
参数用于指定服务器模式。可选值包括staging
和release
。
模式 | 含义 | URL |
---|---|---|
staging | 开发环境 | tapi.finpong.com |
release | 生产环境 | api.finpong.com |
3. 调用私钥证书
根据不同的平台和认证机构,需要传递相应的类型和包名或应用ID。
3.1 添加onUriScheme
处理
在onUriScheme
中编写代码以处理私钥证书的调用。
onUriScheme: (type, scheme) {
/**
* 该函数用于处理应用Schema调用。
* 如果应用已安装,则启动应用Schema。
* 如果未安装,则引导用户到应用商店下载。
*/
canLaunchUrl(Uri.parse(scheme)).then((bool result) {
setState(() async {
if (result) {
if (!await launchUrl(Uri.parse(scheme), mode: LaunchMode.externalApplication)) {
throw Exception('Could not launch $scheme');
}
} else {
!await launchUrl(
Uri.parse('type별 스토어 url'),
mode: LaunchMode.externalApplication,
);
}
});
});
}
4. FinpongPlus与应用通信
4.1 添加自定义操作处理
在onCustomAction
中处理预定义的FinpongPlus动作。
onCustomAction: (pageId, params) {
// 处理预定义的FinpongPlus动作
switch(pageId){
case 'ACT1000':
// 处理ACT1000动作
break;
case 'ACT2000':
// 处理ACT2000动作
break;
...
}
},
4.2 调用FinpongPlus脚本
创建并使用FinpongPlusController
来运行JavaScript。
FinpongPlusController finpongPlusController = FinpongPlusController();
var testData = {"data1": 1, "data2": true};
String jsonString = jsonEncode(testData);
finpongPlusController.runJavaScript('scriptName', jsonString);
4.3 文件下载与上传
处理文件下载和上传的过程如下:
- 当
onCustomAction
的pageId
为PA-001
时,调用客户自定义的上传弹窗。 - 用户选择同意后,调用
fileDataConnect
函数传递数据。
var testData = {
isUpload:false, // 是否上传
uploadRes:'',
uploadMsg:'',
isAgree : 'Y' // 是否同意
};
String jsonString = jsonEncode(testData);
finpongPlusController.runJavaScript('fileDataConnect', jsonString);
- 下载数据后,进行上传处理并调用
fileDataConnect
函数传递结果。
var testData = {
isUpload:true, // 是否上传
uploadRes:'success', // 上传状态
uploadMsg:'上传成功', // 上传消息
isAgree : 'Y'
};
String jsonString = jsonEncode(testData);
finpongPlusController.runJavaScript('fileDataConnect', jsonString);
更多关于Flutter功能扩展插件finpong_plus的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter功能扩展插件finpong_plus的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
finpong_plus
是一个 Flutter 插件,主要用于扩展 Flutter 应用的功能。它可能提供了一系列工具、功能或其他增强功能,以便开发者能够更轻松地构建应用程序。具体功能取决于插件的实现和设计目的。以下是如何在 Flutter 项目中使用 finpong_plus
插件的一般步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 finpong_plus
插件的依赖:
dependencies:
flutter:
sdk: flutter
finpong_plus: ^1.0.0 # 使用最新版本号
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在需要使用 finpong_plus
的 Dart 文件中,导入插件:
import 'package:finpong_plus/finpong_plus.dart';
3. 初始化插件
在某些情况下,插件可能需要初始化。你可以在应用的 main
函数或 initState
方法中进行初始化:
void main() {
FinpongPlus.initialize(); // 假设插件有一个初始化方法
runApp(MyApp());
}
4. 使用插件功能
根据插件的具体功能,你可以调用其提供的 API。例如,如果 finpong_plus
提供了一个工具来显示 Toast 消息,你可以这样使用:
FinpongPlus.showToast(message: "Hello, Flutter!"); // 示例用法
如果插件提供了其他功能,如网络请求、本地存储、UI 组件等,你可以根据文档或源码调用相应的方法。
5. 处理回调或事件
如果插件支持事件或回调,你需要注册监听器来处理这些事件:
FinpongPlus.onEvent.listen((event) {
print("Received event: $event");
});
6. 配置插件
有些插件可能需要额外的配置,例如配置 API 密钥、设置参数等。你可以在 main
函数或应用启动时进行配置:
FinpongPlus.configure(apiKey: "your_api_key");
7. 处理错误
确保在使用插件时处理可能的错误或异常:
try {
FinpongPlus.someFunction();
} catch (e) {
print("Error occurred: $e");
}
8. 查看文档
如果 finpong_plus
有官方文档或示例项目,建议详细阅读文档以了解其所有功能和使用方法。
9. 测试和调试
在开发过程中,使用插件时应进行充分的测试,以确保其功能符合预期。如果遇到问题,可以通过日志或调试工具进行排查。
10. 更新和升级
定期检查插件的更新,获取新功能和修复的 bug:
flutter pub upgrade