我在推送通知方面遇到 Flutter 和 IOS 问题。
我的设置和有效的东西:
1)我安装了firebase_messaging: ^5.1.6
没有错误的软件包/按照他们的所有IOS说明进行操作
2) 我已在 IOS 上征得用户许可并接受接收推送通知
3) 我能够在 IOS 和 Android 设备上获得 FCM 令牌
4)我在苹果开发者部分创建了一个密钥,并将密钥添加到 FCM
5)我在测试时关闭了应用程序/将其发送到后台 - 仍然没有运气
6) 我已经使用 Xcode 将 google-service-info 文件添加到 Runner
7) 我在 XCode 功能中添加了推送通知和后台通知
8) 我正在 iPhone 7 物理设备和物理 iPad 上进行测试
我使用 curl 向 IOS 设备发送通知
curl -X POST --header "Authorization: key=<myAuthKEY>" \
--Header "Content-Type: application/json" \
https://fcm.googleapis.com/fcm/send \
-d "{\"to\":\"<myDeviceKey>\",\"notification\":{\"body\":\"Hello\"},\"priority\":10}"
Run Code Online (Sandbox Code Playgroud)
我收到了来自 firebase 的成功响应
{"multicast_id":<SomeIdHere>,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"<SomeIdHere>"}]}
Run Code Online (Sandbox Code Playgroud)
这是我检索令牌的方法:
firebaseMessaging.getToken().then((String token) {
_authModel.setNotificationToken(token);
});
Run Code Online (Sandbox Code Playgroud)
当我在 IOS 上运行该应用程序时,我没有收到任何 Firebase 错误。 …
使用Ionic的应用程序,并为此应用程序有一个PHP api后端.
我们需要在这个应用程序中集成Telegram API消息,我需要使用API而不是bot,因为我们需要检索用户联系人以允许他们发送新的私人消息.
我花了7个多小时寻找示例和Telegrams文档但是仍然无法找到实现这一点的方法,我想知道是否有人可以指出我正确的方向.
我正在Flutter中构建我的第一个应用,该应用正在使用sqlite database
。因此,我有模型和存储库。
代码布局:
我有2款(将有更多的在成品应用程序)UserModel
,TimesheetModel
这些都延长BaseModel
我有2个存储库(将有更多的在成品应用程序) UserRepository
,TimesheetRepository
这些都延伸BaseRepository
我所试图做的事:我想有可重用的代码,如:getAll()
,countAll()
在等BaseRepository
这样所有的扩展基本信息库具有此功能的资料库和所有我需要做的是设置表名称并设置返回Model
。
错误:您可以从我的代码中看到,因为的BaseRepository
返回BaseModel
类型,当我all()
在时间表对象上调用函数时,出现以下错误:类型'列表'不是类型'列表'的子类型
我不确定如何解决此问题,请提出任何建议?
基本资料库
abstract class BaseRepository {
final String table;
final model;
BaseRepository({this.table, this.model});
// Retrieve all the items
Future<List<BaseModel>> all() async {
final sql = '''SELECT * FROM $table''';
final data = await db.rawQuery(sql);
List<BaseModel> forms = List();
for (final node in data) {
final form = …
Run Code Online (Sandbox Code Playgroud) 我正在编写我的第一个 Flutter 应用程序。该应用程序允许用户拍摄多张图像(从 1 到 50 多张),并使用 ListView 在屏幕上一次性显示每张图像。
我遇到的问题是,应用程序在三星 SM A520F 上大约 10/12 张图片后崩溃,我猜这是因为这不是一个非常强大的设备。
有没有办法可以显示图像的缩略图而不是加载全尺寸图像?
错误消息:我实际上没有收到任何错误消息,应用程序似乎重新启动了!
这是我的代码
import 'package:flutter/material.dart';
import 'package:myapp/utilities/app_constants.dart';
import 'package:image_picker/image_picker.dart';
import 'dart:io';
import 'package:gallery_saver/gallery_saver.dart';
class FormCameraField extends StatefulWidget {
final InputDecoration decorations;
final Map field;
// functions
final Function onSaved;
final Function onFieldSubmitted;
FormCameraField({
this.decorations,
@required this.field,
@required this.onSaved,
@required this.onFieldSubmitted,
});
@override
_FormCameraFieldState createState() => _FormCameraFieldState();
}
class _FormCameraFieldState extends State<FormCameraField> {
List<File> images = [];
Future<void> _takePhoto(ImageSource source) async {
ImagePicker.pickImage(source: source, imageQuality: 90).then( …
Run Code Online (Sandbox Code Playgroud) 我试图在应用程序完全关闭时访问设备上的本地数据库,为此我使用 sqlite 插件sqflite: ^1.2.0
和后台获取插件background_fetch: ^0.4.0
。
我能够毫无问题地注册无头后台任务,当我尝试运行后台任务时,出现以下错误!
\n\n当应用程序运行或进入后台模式时,插件似乎可以正常工作。
\n\n请问有什么建议吗?
\n\n错误
\n\n[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: MissingPluginException(No implementation found for method getDatabasesPath on channel com.tekartik.sqflite)\n
Run Code Online (Sandbox Code Playgroud)\n\n颤动版本:
\n\nFlutter 1.12.13+hotfix.7 \xe2\x80\xa2 channel stable \xe2\x80\xa2 https://github.com/flutter/flutter.git\nFramework \xe2\x80\xa2 revision 9f5ff2306b (11 days ago) \xe2\x80\xa2 2020-01-26 22:38:26 -0800\nEngine \xe2\x80\xa2 revision a67792536c\nTools \xe2\x80\xa2 Dart 2.7.0\n
Run Code Online (Sandbox Code Playgroud)\n\n颤振医生
\n\n[\xe2\x9c\x93] Flutter (Channel stable, v1.12.13+hotfix.7, on Mac OS X 10.15.2 19C57, locale en-GB)\n\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android …
Run Code Online (Sandbox Code Playgroud) 我有一个包含多个页面的 Flutter 应用程序,有些页面需要用户登录才能访问该页面。
我遇到的主要问题是,kDashboardRoute
我需要调用一个async
方法来检查用户是否已登录并相应地设置bool isUserLoggedIn
,但是,我无法调用此方法,因为它返回一个未来,我不能await
用作该routes
方法回不了一个未来。
请问有什么建议吗?
下面是我的 main.dart 类中的代码
Future<void> main() async {
// run the app
runApp(
MaterialApp(
title: kAppName,
theme: ThemeData(
primarySwatch: Colors.green,
primaryColor: kPrimaryColour,
),
onGenerateRoute: RouteGenerator.routes,
),
);
}
Run Code Online (Sandbox Code Playgroud)
下面是我的路由文件中的代码
import 'package:flutter/material.dart';
import 'package:myapp/services/auth_service.dart';
import 'package:myapp/utilities/constants.dart';
import 'package:myapp/pages/login_page.dart';
import 'package:myapp/pages/two_step_verification.dart';
import 'package:myapp/pages/dashboard_page.dart';
import 'package:myapp/pages/error_page.dart';
class RouteGenerator {
static Route<dynamic> routes(RouteSettings settings) {
final args = settings.arguments;
switch (settings.name) {
case kLoginRoute:
return MaterialPageRoute(builder: (_) => LoginPage()); …
Run Code Online (Sandbox Code Playgroud) 我正在使用颤振showDatePicker
小部件https://api.flutter.dev/flutter/material/showDatePicker.html
当日期选择器弹出窗口默认加载时,一周的开始是星期日,我想将其更改为星期一。
关于如何实现这一目标的任何建议?
Future<void> _selectDate(BuildContext context) async {
final DateTime picked = await showDatePicker(
context: context,
initialDate: _selectedDate,
firstDate: firstDate,
lastDate: lastDate,
locale: const Locale('en', 'GB'),
);
if (picked != null && picked != _selectedDate) {
// update the calendar slider with new date
setState(() {
_selectedDate = picked.add(Duration(hours: 1));
});
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 Flutter 在 IOS 设备上接收静默/后台推送通知。我已经设法让它在 Android 上运行,只是 IOS 是问题所在。
设置-我使用的firebase_messaging 5.1.6
插件-我已经打勾remote notifications
,并background fetch
在Xcode中,并同时启用的功能推送通知-推送通知与数据似乎做工精细
我的有效载荷(我尝试过使用和不使用数据)
{"registration_ids":["<IOS DEVICE IDS>"],"priority":"high","content_available":true,"mutable_content":true,"data":{"title":"Title.","body":"Message."}}
Run Code Online (Sandbox Code Playgroud)
我的firebase配置如下:
onBackgroundMessage
设置为 null的原因是我收到以下错误:
Unhandled Exception: MissingPluginException(No implementation found for method FcmDartService#start on channel plugins.flutter.io/firebase_messaging)
Run Code Online (Sandbox Code Playgroud)
{"registration_ids":["<IOS DEVICE IDS>"],"priority":"high","content_available":true,"mutable_content":true,"data":{"title":"Title.","body":"Message."}}
Run Code Online (Sandbox Code Playgroud)
完全错误
2019-10-15 08:44:52.766262+0100 Runner[16132:1794539] - <AppMeasurement>[I-ACS036001] Analytics screen reporting is disabled. UIViewController transitions will not be logged.
2019-10-15 08:44:52.909787+0100 Runner[16132:1794333] Metal API Validation Enabled
2019-10-15 08:44:53.173885+0100 Runner[16132:1794552] flutter: Observatory listening on http://127.0.0.1:58105/hC1vIwLgB_o=/
2019-10-15 08:44:53.294824+0100 Runner[16132:1794539] 6.9.0 - [Firebase/Analytics][I-ACS023007] Analytics …
Run Code Online (Sandbox Code Playgroud) 我想在每次页面更改时运行一个函数Flutter application
。
理想情况下,我不想在initState
每个页面中调用此函数,因为有时人们可能会忘记在新页面中添加调用。
将其视为middleware
- 基本上在页面加载之前等,需要运行一些代码。
更新代码以供审核
import 'package:flutter/material.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:myapp/pages/login_page.dart';
import 'package:myapp/pages/dashboard_page.dart';
import 'package:myapp/styles/constants.dart';
import 'package:myapp/services/auth_service.dart';
Future<void> main() async {
// create a auth service instance
AuthService authService = AuthService(secureStorage: FlutterSecureStorage());
bool isLoggedIn = await authService.isUserLoggedIn();
// run the app
runApp(MyApp(
isLoggedIn: isLoggedIn,
));
}
class MyApp extends StatefulWidget {
final bool isLoggedIn;
MyApp({this.isLoggedIn});
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with RouteAware {
final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>(); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试绘制一个圆形菜单,如下图所示,但是我是 Flutter 新手,我不知道从哪里开始这样的操作。
我只会有 8 个和平,而不是图中所示的 12 个,它们都是链接,每个链接都指向应用程序的不同部分。
在中心灰色区域,我们将有短文本
我正在开发一个应用程序,允许用户拍照并使用不同大小的笔触和颜色在图像上绘制线条。
我已经使用该插件image_picker
允许用户使用camera
.
我目前陷入困境,因为我似乎无法找到一个解决方案,让我实现该功能以允许用户在图像上绘图。
请提出任何建议。