aliyun_saf 0.2.1 copy "aliyun_saf: ^0.2.1" to clipboard
aliyun_saf: ^0.2.1 copied to clipboard

SAF HTTPS plugin for Aliyun.

example/lib/main.dart

import 'package:aliyun_saf/aliyun_saf.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final TextEditingController _appKeyTEC = TextEditingController();
  final TextEditingController _accessKeyIdTEC = TextEditingController();
  final TextEditingController _accessKeySecretTEC = TextEditingController();
  final TextEditingController _mobileTEC = TextEditingController();

  String get appKey => _appKeyTEC.text;

  String get accessKeyId => _accessKeyIdTEC.text;

  String get accessKeySecret => _accessKeySecretTEC.text;

  String get mobile => _mobileTEC.text;

  void _showSnackBar(BuildContext context, String content) {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text(content)),
    );
  }

  Future<void> init(BuildContext context) async {
    if (appKey.isEmpty || accessKeyId.isEmpty || accessKeySecret.isEmpty) {
      _showSnackBar(context, '字段未填写完整');
      return;
    }
    await AliyunSAF().init(appKey, accessKeyId, accessKeySecret);
    _showSnackBar(context, 'Inited.');
  }

  Future<void> getSession(BuildContext context) async {
    try {
      _showSnackBar(context, await AliyunSAF().getSession());
    } catch (e) {
      _showSnackBar(context, 'Error when getting session: $e');
    }
  }

  Future<void> request(BuildContext context) async {
    if (mobile.isEmpty) {
      _showSnackBar(context, 'Cannot request empty mobile.');
    }
    final SAFResponse? res = await AliyunSAF().request(mobile);
    if (res == null) {
      _showSnackBar(context, 'Error when requesting since it returns null.');
      return;
    }
    _showSnackBar(context, '${res.data}');
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Plugin example app')),
        body: Builder(
          builder: (BuildContext c) => Column(
            children: <Widget>[
              TextField(
                controller: _appKeyTEC,
                decoration: const InputDecoration(labelText: 'AppKey'),
              ),
              TextField(
                controller: _accessKeyIdTEC,
                decoration: const InputDecoration(labelText: 'AccessKeyId'),
              ),
              TextField(
                controller: _accessKeySecretTEC,
                decoration: const InputDecoration(labelText: 'AccessKeySecret'),
              ),
              TextButton(
                onPressed: () => init(c),
                child: const Text('Init'),
              ),
              TextButton(
                onPressed: () => getSession(c),
                child: const Text('getSession'),
              ),
              TextField(
                controller: _mobileTEC,
                decoration: const InputDecoration(labelText: 'Mobile number'),
              ),
              TextButton(
                onPressed: () => request(c),
                child: const Text('request'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
70
pub points
0%
popularity

Publisher

unverified uploader

SAF HTTPS plugin for Aliyun.

Repository (GitHub)
View/report issues

Documentation

API reference

License

Apache-2.0 (LICENSE)

Dependencies

crypto, flutter, http, uuid

More

Packages that depend on aliyun_saf