android 地图
This commit is contained in:
@@ -1,58 +1,82 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/gestures.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
/// 原生地图页面
|
||||
class NativePageIOS extends StatelessWidget {
|
||||
const NativePageIOS({super.key});
|
||||
const NativePageIOS({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (Platform.isIOS) {
|
||||
return Container(
|
||||
// onTap: () => _handleTap(context),
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height: MediaQuery.of(context).size.width - 100,
|
||||
// padding: EdgeInsetsGeometry.all(15),
|
||||
color: Colors.red[100],
|
||||
|
||||
child: UiKitView(
|
||||
viewType: 'NativeFirstPage', // 与原生端注册的标识一致
|
||||
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>{}.toSet(),
|
||||
hitTestBehavior: PlatformViewHitTestBehavior.opaque,
|
||||
creationParamsCodec: const StandardMessageCodec(),
|
||||
layoutDirection: TextDirection.ltr,
|
||||
)
|
||||
);
|
||||
} else {
|
||||
return const Center(child: Text('not ios'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void _handleTap(BuildContext context) {
|
||||
print("页面被点击");
|
||||
_showDialog(context, 'Tip', '点击了');
|
||||
}
|
||||
|
||||
|
||||
void _showDialog(BuildContext context, String title, String content) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: Text(title),
|
||||
content: Text(content),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => Navigator.pop(context),
|
||||
child: const Text('确定'),
|
||||
),
|
||||
],
|
||||
),
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (Platform.isIOS) {
|
||||
return _buildIOSView(context);
|
||||
} else if (Platform.isAndroid) {
|
||||
return _buildAndroidView(context);
|
||||
} else {
|
||||
return const Center(
|
||||
child: Text('不支持的平台', style: TextStyle(fontSize: 16)),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// 构建iOS Platform View
|
||||
Widget _buildIOSView(BuildContext context) {
|
||||
return Container(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height: MediaQuery.of(context).size.height - 100,
|
||||
color: Colors.white,
|
||||
child: UiKitView(
|
||||
viewType: 'NativeFirstPage', // 与iOS原生端注册的标识一致
|
||||
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>{}.toSet(),
|
||||
hitTestBehavior: PlatformViewHitTestBehavior.opaque,
|
||||
creationParamsCodec: const StandardMessageCodec(),
|
||||
layoutDirection: TextDirection.ltr,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// 构建Android Platform View
|
||||
Widget _buildAndroidView(BuildContext context) {
|
||||
return Container(
|
||||
width: MediaQuery.of(context).size.width,
|
||||
height: MediaQuery.of(context).size.height - 100,
|
||||
color: Colors.white,
|
||||
child: AndroidView(
|
||||
viewType: 'NativeFirstPage', // 与Android原生端注册的标识一致
|
||||
gestureRecognizers: <Factory<OneSequenceGestureRecognizer>>{}.toSet(),
|
||||
hitTestBehavior: PlatformViewHitTestBehavior.opaque,
|
||||
creationParamsCodec: const StandardMessageCodec(),
|
||||
layoutDirection: TextDirection.ltr,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/// 处理点击事件(如需要)
|
||||
void _handleTap(BuildContext context) {
|
||||
if (kDebugMode) {
|
||||
print("NativePage被点击");
|
||||
}
|
||||
_showDialog(context, '提示', '点击了原生地图页面');
|
||||
}
|
||||
|
||||
/// 显示对话框
|
||||
void _showDialog(BuildContext context, String title, String content) {
|
||||
showDialog(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: Text(title),
|
||||
content: Text(content),
|
||||
actions: [
|
||||
TextButton(
|
||||
onPressed: () => Navigator.pop(context),
|
||||
child: const Text('确定'),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user