[英]How do I add permission_handler code to my main.dart page?
我想添加 permission_handler 插件。 已经将它添加到pubspec.yaml文件中,但不知道从那里到 go 的确切位置。 如何将位置权限代码实际添加到我的main.dart页面?
main.dart页面:
import 'package:flutter/material.dart';
import 'package:athena/providers/app_state.dart';
import 'package:athena/providers/user.dart';
import 'package:athena/screens/login.dart';
import 'package:athena/screens/splash.dart';
import 'locators/service_locator.dart';
import 'screens/home.dart';
import 'package:provider/provider.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
setupLocator();
return runApp(MultiProvider(
providers: [
ChangeNotifierProvider<AppStateProvider>.value(
value: AppStateProvider(),
),
ChangeNotifierProvider<UserProvider>.value(
value: UserProvider.initialize(),
),
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Athena',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyApp(),
),
));
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
UserProvider auth = Provider.of<UserProvider>(context);
switch (auth.status) {
case Status.Uninitialized:
return Splash();
case Status.Unauthenticated:
case Status.Authenticating:
return LoginScreen();
case Status.Authenticated:
return MyHomePage();
default:
return LoginScreen();
}
}
}
像这样创建一个 function
Future<void> askLocationPermission() async {
await Permission.location.request();
}
由于您已将home: MyApp()
添加为主页,
Go 到MyApp()
,并使其成为 StatefulWidget。
然后在其 initState() 中,调用请求权限的 function。
一个例子如下所示
@override
void initState() {
super.initState();
askLocationPermission();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.