inavi_map_flutter 1.0.0
inavi_map_flutter: ^1.0.0 copied to clipboard
Flutter plugin for iNavi Maps SDK — map display, camera, markers on Android and iOS.
example/lib/main.dart
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:inavi_map_flutter/inavi_map_flutter.dart';
import 'feature_list_screen.dart';
void main() {
runApp(const InaviMapsExampleApp());
}
class InaviMapsExampleApp extends StatefulWidget {
const InaviMapsExampleApp({super.key});
@override
State<InaviMapsExampleApp> createState() => _InaviMapsExampleAppState();
}
class _InaviMapsExampleAppState extends State<InaviMapsExampleApp> {
StreamSubscription<InitEvent>? _initSub;
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
@override
void initState() {
super.initState();
_initSub = InaviMapsSdk.instance.onInit.listen(_handleInitEvent);
}
void _handleInitEvent(InitEvent event) {
if (event is! AuthFailure) return;
final navContext = _navigatorKey.currentContext;
if (navContext == null) return;
showDialog<void>(
context: navContext,
builder: (_) => AlertDialog(
title: const Text('SDK 인증 실패'),
content: Text(
'errorCode: ${event.errorCode}\n'
'errorMessage: ${event.errorMessage ?? "(없음)"}',
),
actions: [
TextButton(
onPressed: () => Navigator.of(navContext).pop(),
child: const Text('확인'),
),
],
),
);
}
@override
void dispose() {
_initSub?.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'iNavi Maps Flutter — Example',
navigatorKey: _navigatorKey,
home: const FeatureListScreen(),
);
}
}