umeng_apm_sdk 1.1.0 copy "umeng_apm_sdk: ^1.1.0" to clipboard
umeng_apm_sdk: ^1.1.0 copied to clipboard

PlatformAndroidiOS
outdated

U-APM SDK Plugin.

example/lib/main.dart

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

import 'package:flutter/services.dart';
import 'package:umeng_apm_sdk/umeng_apm_sdk.dart';
import 'package:umeng_common_sdk/umeng_common_sdk.dart';

//上报数据至umapm
Future<Null> _reportError(dynamic error, dynamic stackTrace) async {
  UmengApmSdk.postException(error.toString(), stackTrace.toString());
}

void main() {
  runZonedGuarded(() async {
    WidgetsFlutterBinding.ensureInitialized();
    FlutterError.onError = (FlutterErrorDetails details) {
      _reportError(details.exception, details.stack);
    };
    runApp(MyApp());
  }, (Object error, StackTrace stack) {
    _reportError(error, stack);
  });
}

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

class _MyAppState extends State<MyApp> {
  String _platformVersion = 'Unknown';

  @override
  void initState() {
    super.initState();
    initPlatformState();
    UmengCommonSdk.initCommon('6136d3355f3497702f228687', '610cf1373451547e683eaf23', 'Umeng');
    UmengCommonSdk.setPageCollectionModeManual();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String platformVersion;
    // Platform messages may fail, so we use a try/catch PlatformException.
    try {
      platformVersion = await UmengApmSdk.platformVersion;
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
          child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children:<Widget>[
                FlatButton(
                    color: Colors.blue,
                    highlightColor: Colors.blue[700],
                    colorBrightness: Brightness.dark,
                    child: Text("dart error"),
                    shape:RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)),
                    onPressed: () async {
                      final channel = const MethodChannel('crashy-custom-channel');
                      await channel.invokeMethod('blah');
                    }
                ),
                FlatButton(
                    color: Colors.blue,
                    highlightColor: Colors.blue[700],
                    colorBrightness: Brightness.dark,
                    child: Text("framework exception"),
                    shape:RoundedRectangleBorder(borderRadius: BorderRadius.circular(20.0)),
                    onPressed: (){
                      List<String> numList = ['1', '2'];
                      print(numList[5]);
                    }
                ),
              ]
          ),
        ),
      ),
    );
  }
}