我不知道标题是否完全合适,但这是我真正想要做的。我有指向 mp3 文件的 url,现在有些是有效的,有些不是,截至目前,所以在我呈现在我的 UI 中播放这些音频文件的控件之前,我想检查该 URL 是否会给我mp3 或导致 404。我该怎么做?
我正在使用http Dart 包向 MapQuest Static Maps API发送GET请求以获取图像。但是,对此请求的响应直接返回图像,而不是Uri,或者也许我做错了什么。
你能帮我显示收到的图像吗?
这是请求代码:
final http.Response response = await http.get(
'https://www.mapquestapi.com/geocoding/v1/address?key=[MYAPIKEY]&inFormat=kvp&outFormat=json&location=${address}&thumbMaps=false&maxResults=1');
final decodedResponse = json.decode(response.body);
setState(() {
_coords = decodedResponse['results'][0]['locations'][0]['latLng'];
});
final http.Response staticMapResponse = await http.get(
'https://www.mapquestapi.com/staticmap/v5/map?key=[MYAPIKEY]¢er=${coords['lat']},${coords['lng']}&zoom=13&type=hyb&locations=${coords['lat']},${coords['lng']}&size=500,300@2x');
Run Code Online (Sandbox Code Playgroud)
坐标是从 MapQuest 的地理编码 API 接收的,这是一个async请求。
我已使用 Google Sign In 通过 Firebase Auth 对用户进行身份验证,并成功找回了我的 Firebase 用户。当他们回到应用程序时,我想保持用户的身份验证。我怎样才能做同样的事情?
我firebase_messaging在我的颤振应用程序中使用,我希望能够调试onLaunch回调触发时发生的情况。
问题是它会在收到通知并且应用程序终止时触发。
必须有一种方法来调试它吗?
应用程序的通常行为是在按下后退按钮时退出。我想要的是当按下后退按钮时,应用程序在不退出的情况下进入后台。就像我们从一个应用程序切换到另一个应用程序时会发生什么一样。
我知道这将涉及使用WillPopScope()但如何处理onBackPressed事件以将应用程序保持在后台,而不是退出。
有没有办法在颤振中实现深层链接,以便如果用户单击链接,则他们被重定向到应用程序的特定部分,前提是应用程序已安装,但如果没有,则将它们重定向到相应的应用程序商店,安装应用程序,然后转到该特定部分?
在寻找解决方案时,我遇到了这个名为的包,uni_links但我不确定它是否可以满足此要求。
tl;dr :我想按时获取今天、昨天或任何过去日期的屏幕。
我似乎无法找到如何在我的 Android 应用程序中按时获取与设备屏幕相关的统计信息。我遇到过UsageStats API,但它返回不同应用程序的使用统计信息。
我知道它可以在任何 android 设备(可能来自特定版本的 android)上完成,因为有一个名为ActionDash的应用程序具有此功能。有人可以告诉我怎么做吗?
我想使用自定义小部件树,而不是在 SliverAppBar 的 flexibleSpace 属性中使用 FlexibleSpaceBar,在展开时,但在滚动时,我想显示自定义文本,而不是小部件树。
我创建了一个自定义小部件树,该树应分配给 flexibleSpace 属性,但我不知道如何在滚动时显示自定义文本,并隐藏小部件树。
SliverAppBar(
expandedHeight: 180.0,
backgroundColor: const Color(0xFF9e0118),
iconTheme: IconThemeData(color: Colors.white),
floating: true,
pinned: true,
flexibleSpace: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
margin: EdgeInsets.only(top: 16.0),
padding: EdgeInsets.only(left: 32.0, right: 32.0),
child: Text(
'Some text',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontFamily: 'PlayfairDisplay',
fontStyle: FontStyle.italic,
fontSize: 16.0),
)),
Container(
margin: EdgeInsets.only(top: 16.0),
padding: EdgeInsets.only(left: 32.0, right: 32.0),
child: Text(
'some text',
textAlign: TextAlign.center,
style: TextStyle(
color: Colors.white,
fontFamily: 'PlayfairDisplay',
fontSize: 16.0),
)), …Run Code Online (Sandbox Code Playgroud) 我正在使用提供程序来管理我的应用程序状态。这是我的实现方式。
催眠药
class _HypnoseAppState extends State<HypnoseApp> {
@override
Widget build(BuildContext context) {
UserService userService = UserService();
AudioUtilService audioUtilService = AudioUtilService();
return MultiProvider(
providers: [
ChangeNotifierProvider<UserService>.value(
value: userService,
),
ChangeNotifierProvider<AudioUtilService>.value(
value: audioUtilService,
)
],
child: MaterialApp(
debugShowCheckedModeBanner: false,
title: Globals.title,
theme: ThemeData(primarySwatch: Colors.cyan),
darkTheme: ThemeData.dark(),
initialRoute: '/',
routes: {
'/': (BuildContext context) => WelcomeScreen(userService),
'/home': (BuildContext context) => HomePageSwitcher(),
'/audiocreate': (BuildContext context) => AudioCreateScreen()
}),
);
}
}
Run Code Online (Sandbox Code Playgroud)
home_switcher.dart
class HomePageSwitcher extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Consumer<UserService>( …Run Code Online (Sandbox Code Playgroud) 我需要按照自定义材质小部件上垂直拖动的方向,从屏幕底部导航到具有淡入动画的新屏幕。
我创建了两个屏幕,屏幕-1 和屏幕-2。在屏幕 - 1 上,我有一个容器小部件。我已将小部件包装在 GestureDetector 内,并尝试在垂直拖动时导航到 screen - 2,我正在使用 GestureDetector.onVerticalDrag 属性。
import 'package:flutter/material.dart';
void main(){
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
initialRoute: '/',
routes: {
'/':(context) => ScreenOne(),
'/two': (context) => ScreenTwo(),
},
title: 'Screens',
);
}
}
class ScreenOne extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Screen-1'),
),
body: GestureDetector(
onVerticalDragStart: (DragStartDetails …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码将图像上传到Flutter中的Firebase存储。
StorageReference reference =
FirebaseStorage.instance.ref().child("$fileId.jpg");
StorageUploadTask uploadTask = reference.putFile(_imageFile);
Run Code Online (Sandbox Code Playgroud)
这似乎确实有效。但我需要找到一种方法来等待此上传过程。考虑到reference.putFile(file)这不会返回未来,我该怎么办?