目前,我正在使用警报对话框在应用程序处于前台时接收推送通知时显示通知。但我想在颤振中显示一些非侵入性的东西,比如本地通知。我如何在我的应用程序中实现它?这是我目前的实现:
FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
@override
void initState() {
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
showDialog(
context: context,
builder: (context) => AlertDialog(
content: ListTile(
title: Text(message['notification']['title']),
subtitle: Text(message['notification']['body']),
),
actions: <Widget>[
FlatButton(
child: Text('Ok'),
onPressed: () => Navigator.of(context).pop(),
),
],
),
);
print("onMessage: $message");
},
onLaunch: (Map<String, dynamic> message) async {
print("onLaunch: $message");
Navigator.pushNamed(context, '/notify');
},
onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
},
);
}
Run Code Online (Sandbox Code Playgroud) http在我的 flutter 应用程序中使用包时,我遇到了一个小问题。我正在 localhost 上进行测试,当我使用 http.post 在数据库中发布某些内容时,它不会在服务器未运行时返回默认时间(即我认为 60 秒)的响应。当我在超时内启动 apache 和 mysql 服务时,它会在服务器中发布数据。有没有办法减少dart http包中http请求的超时时间?或者有什么替代解决方案?
假设我有一个字符串:
a="23questions";
b="2questions3";
Run Code Online (Sandbox Code Playgroud)
现在我需要从两个字符串中解析 23。如何从字符串值中提取该数字或任何数字?
我有一个多级用户应用程序,其中我实现了基于角色的小部件。例如;
final user=Provider.of<UserNotifier>(context).getRole(); //returns role string
(user=="Admin")?SomeWidget():Container(),
Run Code Online (Sandbox Code Playgroud)
还有另一种选择,例如:
Visibility (
visible: (user=="Admin"),
child: SomeWidget()
),
Run Code Online (Sandbox Code Playgroud)
这两种方法中哪一种是最好的方法?
我有一个标签视图,其中有热门、最近和即将推出的类别。他们在 api 上都有相同的响应。我正在尝试使用 flutter_bloc 从 api 获取数据。之前我使用 rxdart 主题,并为每种类型的数据创建了一个主题。现在使用 flutter bloc 我想实现同样的目标。我想做的是在选项卡之间切换。以前我使用behaviorsubject 将数据保存到下一个事件,但现在我想过渡到块模式。如何使用 flutter_bloc 获得相同类型的结果?或者我需要为每种类型创建块?最后,如何从 api 获取数据,以便在切换选项卡时保持状态?我的 Rxdart 实现:
class DataBloc {
final DataRepo _repository = DataRepo();
final BehaviorSubject<Data> _recent = BehaviorSubject<Data>();
final BehaviorSubject<Data> _popular = BehaviorSubject<Data>();
final BehaviorSubject<Data> _upcoming = BehaviorSubject<Data>();
getData(String type) async {
Data response = await _repository.getData(type);
if (type == "recent") {
_recent.sink.add(response);
} else if (type == "upcoming") {
_upcoming.sink.add(response);
} else {
_popular.sink.add(response);
}
}
dispose() {
_recent?.close();
_popular?.close();
_upcoming?.close();
}
BehaviorSubject<Data> get recent …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现图像的圆形切口,并且我正在使用drawAtlas。这是到目前为止我的实现:
canvas.drawAtlas(
image!,
[
/* Identity transform */
RSTransform.fromComponents(
rotation: 0.0,
scale: 1,
anchorX: 0,
anchorY: 0,
translateX: 0,
translateY: 0,
)
],
[
Rect.fromCircle(
center: Offset(size.width / 2, size.height / 2),
radius: 200,
),
],
[],
null,
null,
Paint(),
);
Run Code Online (Sandbox Code Playgroud)
虽然它确实有效,但它绘制了一个矩形图像。我想用一些画出同一图像的圆形切口strokeWidth。使用drawAtlas可以做到这一点吗?
我正在尝试自定义 flutter 中 firebase_messaging 的通知声音。在前台,我正在实施 flutter_local_notifications 包以在我设置了自定义声音和振动的地方发送通知。但是在后台的情况下,通知由默认通知渠道处理。有什么方法可以创建通知通道或使用我刚刚使用 flutter_local_notifications 包创建的通道?
我有我的主页,我可以从中转到我的 flutter 应用程序中的个人资料页面。在按下个人资料图标时,我将我的上下文推送到个人资料页面,在那里我有一个更改密码的按钮。当我按下更改密码时,它会打开一个警告对话框,其中包含输入密码的文本字段。我有一个功能注销,它通过清除首选项并将上下文推送到登录屏幕作为替换来注销应用程序。现在我想在更改密码时注销我的应用程序。但它将替换推送到导航堆栈的顶部,返回堆栈内的登录页面。我该如何解决这个问题?
_changePassword() async{
print(widget.id);
var data = {
"newPassword": _passcontroller.text,
"confirmNewPassword": _confirmpasscontroller.text
};
var res = await CallApi().putData(data, 'users/${widget.id}/password/change');
var response = res.data;
print(response);
if (response['success']) {
showSimpleFlushbar(context, 'Password Changed Successfully.');
logout(context);
}
}
Run Code Online (Sandbox Code Playgroud) 假设我们有一个整数列表:
List<int> integers=[4, 5];
Run Code Online (Sandbox Code Playgroud)
我想将此列表转换为字符串值,如下所示:
String val="4,5"
Run Code Online (Sandbox Code Playgroud)
我怎样才能在飞镖中做到这一点?
我遇到了这个奇怪的问题,我收到了这个错误。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> Android resource linking failed
C:\Users\live\project_backup\build\file_picker\intermediates\library_manifest\debug\AndroidManifest.xml:9:5-15:15: AAPT: error: unexpected element <queries> found in <manifest>.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 15s
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这发生在我升级file_picker包之后,即使我再次在 pubspec.yaml …