Flutter插件flutter_periculum的使用详解
flutter_periculum简介
Periculum Insight Plugin (Flutter)
该插件允许Flutter应用程序生成移动数据分析和支付能力分析。
平台支持
Android
安装和使用
1. 添加插件到pubspec.yaml
在pubspec.yaml
文件中添加最新版本的插件,并运行pub get
命令:
dependencies:
flutter_periculum: ^0.0.2
2. 导入并使用插件
在Flutter应用中导入并使用插件:
import 'package:flutter_periculum/flutter_periculum.dart';
必要权限
在调用插件方法之前,需要在AndroidManifest.xml
中请求以下权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
使用示例代码
1. 生成移动数据分析(SDK版本1)
参数说明:
参数 | 类型 | 描述 |
---|---|---|
publicKey |
String |
必填项 |
phoneNumber |
String |
必填项 |
bvn |
String |
必填项 |
返回值是一个包含分析结果的列表。
var flutterPericulum =
await FlutterPericulum.generateMobileAnalysis(
publicKey: 'publicKey',
bvn: '1234567890123',
phoneNumber: '090********',
);
2. 生成移动数据分析(SDK版本2)
参数说明:
参数 | 类型 | 描述 |
---|---|---|
publicKey |
String |
必填项 |
phoneNumber |
String |
必填项 |
bvn |
String |
必填项 |
返回值是一个JSON字符串。
var flutterPericulum =
await FlutterPericulum.generateMobileInsightV2(
publicKey: 'publicKey',
bvn: '1234567890123',
phoneNumber: '090********',
);
3. 更新现有移动数据分析(SDK版本2)
参数说明:
参数 | 类型 | 描述 |
---|---|---|
publicKey |
String |
必填项 |
overviewkey |
String |
必填项 |
phoneNumber |
String |
可选项 |
bvn |
String |
可选项 |
返回值是一个包含mobileInsightsOverviewKey
的JSON对象。
var flutterPericulum =
await FlutterPericulum.patchMobileAnalysisV2(
publicKey: 'publicKey',
overviewkey: 'overviewKey',
bvn: '12345678908765',
phoneNumber: '090********',
);
示例代码
以下是一个完整的示例代码,展示如何在Flutter应用中使用flutter_periculum
插件。
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';
import 'package:flutter_periculum/flutter_periculum.dart';
void main() async {
await dotenv.load();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _mobileData = 'Unknown';
bool isLoading = false;
String responseOutput = '';
[@override](/user/override)
void initState() {
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Flutter Periculum Example'),
),
body: isLoading
? const Center(child: CircularProgressIndicator())
: SingleChildScrollView(
physics: const BouncingScrollPhysics(),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
ElevatedButton(
onPressed: () async {
try {
var flutterPericulum =
await FlutterPericulum.generateMobileAnalysisV1(
publicKey: 'nucleusis123',
bvn: '344983985053053',
phoneNumber: '09098983930',
);
setState(() {
responseOutput = flutterPericulum;
});
} catch (e) {
setState(() {
responseOutput = e.toString();
});
}
},
child: const Text('Mobile Analysis V1'),
),
ElevatedButton(
onPressed: () async {
try {
var flutterPericulum =
await FlutterPericulum.generateMobileInsightV2(
publicKey: 'nucleusis123',
bvn: '344983985053053',
phoneNumber: '09098983930',
);
setState(() {
responseOutput = flutterPericulum;
});
} on Exception catch (e) {
setState(() {
responseOutput = e.toString();
});
}
},
child: const Text('Mobile Analysis V2'),
),
ElevatedButton(
onPressed: () async {
try {
var flutterPericulum =
await FlutterPericulum.patchMobileAnalysisV2(
publicKey: 'nucleusis123',
overviewkey: '12',
bvn: '344983985053053',
phoneNumber: '09098983930',
);
setState(() {
responseOutput = flutterPericulum
.mobileInsightsOverviewKey
.toString();
});
} on Exception catch (e) {
setState(() {
responseOutput = e.toString();
});
}
},
child: const Text('Patch Analysis V2'),
),
Text("Result: $responseOutput"),
],
),
),
),
);
}
}
更多关于Flutter插件flutter_periculum的使用详解的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复