Installation and Initialization
Installation
To use the MetricWebviewSDK
, you need to add the package to your pubspec.yaml file:
dependencies:
metric_webview_sdk: ^0.0.1
Then, run flutter pub get
to install the package.
or
Run this command in your terminal:
flutter pub add metric_webview_sdk
Usage
For a full example on how to use the package, check the example.dart
file in the example
directory.
Initialization
To use the SDK, initialize it with your client ID and secret key:
import 'package:metric_webview_sdk/metric_sdk.dart';
final metric = MetricSdk(publicKey: '', secretKey: '');
Example
Below is a complete example of using the SDK in a Flutter application:
Example:
import 'package:flutter/material.dart';
import 'package:metric_webview_sdk/metric_sdk.dart';
import 'package:metric_webview_sdk/models/models.dart';
class WebviewExample extends StatefulWidget {
const WebviewExample({super.key});
@override
State<WebviewExample> createState() => _WebviewExampleState();
}
class _WebviewExampleState extends State<WebviewExample> {
VerificationData? verificationResult;
TextEditingController tokenController = TextEditingController();
bool data = false;
@override
Widget build(BuildContext context) {
final metric = MetricSdk(publicKey: '', secretKey: '');
Future<void> handleVerification() async {
try {
final verificationData = await Navigator.push(
context,
MaterialPageRoute(
builder: (context) => FutureBuilder(
future: metric.initiateTokenVerification(
token: tokenController.text,
onClose: (verificationData) {
Navigator.pop(context, verificationData);
}),
builder: (context, snapshot) {
if (snapshot.hasData) {
return snapshot.data!;
}
return const Center(child: CircularProgressIndicator());
},
),
),
);
if (verificationData != null) {
setState(() {
verificationResult = verificationData;
data = true;
});
}
} catch (e) {
debugPrint('Verification error: $e');
}
}
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
data
? Column(
children: [
Text('Status: ${verificationResult!.status}'),
Text('Customer Name: ${verificationResult!.customerName}'),
Text('SUID: ${verificationResult!.suid}')
],
)
: Text('No Verification Result'),
SizedBox(height: 30),
Text('Enter Token:'),
SizedBox(
width: 90,
child: TextField(controller: tokenController),
),
SizedBox(
height: 30,
),
ElevatedButton(
onPressed: handleVerification,
child: Text(
'Verify Token',
),
)
],
),
));
}
}
Note: Ensure valid tokens and configurations are provided to avoid errors and ensure smooth operation.