| // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| /// A simple web app to hand-test the usage library. |
| library usage_example; |
| |
| import 'dart:html'; |
| |
| import 'package:usage/usage_html.dart'; |
| |
| Analytics? _analytics; |
| String? _lastUa; |
| int _count = 0; |
| |
| void main() { |
| querySelector('#foo')!.onClick.listen((_) => _handleFoo()); |
| querySelector('#bar')!.onClick.listen((_) => _handleBar()); |
| querySelector('#page')!.onClick.listen((_) => _changePage()); |
| } |
| |
| String _ua() => (querySelector('#ua') as InputElement).value!.trim(); |
| |
| Analytics getAnalytics() { |
| if (_analytics == null || _lastUa != _ua()) { |
| _lastUa = _ua(); |
| _analytics = AnalyticsHtml(_lastUa!, 'Test app', '1.0'); |
| _analytics!.sendScreenView(window.location.pathname!); |
| } |
| |
| return _analytics!; |
| } |
| |
| void _handleFoo() { |
| var analytics = getAnalytics(); |
| analytics.sendEvent('main', 'foo'); |
| } |
| |
| void _handleBar() { |
| var analytics = getAnalytics(); |
| analytics.sendEvent('main', 'bar'); |
| } |
| |
| void _changePage() { |
| var analytics = getAnalytics(); |
| window.history.pushState(null, 'new page', '${++_count}.html'); |
| analytics.sendScreenView(window.location.pathname!); |
| } |