这是我的第一个 flutter JSON 示例,我尝试从 json 链接中获取数据并将标题显示为列表视图
我用这段代码写了我的一些更改..在他有results我的数组的链接中我没有所以我data = resBody[" "];
留空是对的吗?
另外,我在 flutter HTTP 请求中遇到了这个错误,但我真的不知道该怎么做
有什么帮助吗?
Dart Error: Unhandled exception:
type 'String' is not a subtype of type 'int' of 'index'
Run Code Online (Sandbox Code Playgroud)
这是我的代码
import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() {
runApp(MaterialApp(
home: ToDo(),
));
}
class ToDo extends StatefulWidget {
@override
ToDoState createState() => ToDoState();
}
class ToDoState extends State<ToDo> {
final String url = "https://jsonplaceholder.typicode.com/todos";
List data;
Future<String> getTitle() …Run Code Online (Sandbox Code Playgroud) 我构建了一个函数,用于在共享首选项中存储令牌,然后当我第一次运行我的应用程序出现错误时从服务器获取数据
以下 NoSuchMethodError 被抛出构建 AdminPage(dirty, state: AdminPageState#87bcd): flutter: The method '[]' was called on null. 颤振:接收方:空颤振:尝试调用:
然后应用程序运行良好
PS我的代码是
Future<Map<String, dynamic>> getCards(String userid) async {
BuildContext context;
String jWTtoken = '';
try {
final SharedPreferences prefs = await SharedPreferences.getInstance();
// prefs = await SharedPreferences.getInstance();
jWTtoken = prefs.getString('token');
tokenfoo();
} catch (e) {
Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (BuildContext context) => AuthPage()),
);
}
final Map<String, dynamic> authData = {
'Userid': '261',
// 'Email':_formData['Email'],
// 'Password':_formData['Password'],
};
final http.Response response = await http.post(
'hurl', …Run Code Online (Sandbox Code Playgroud) 我有一个类发出 HTTP 获取请求和两个屏幕,第一个屏幕显示从 API 获取的标题,第二个屏幕显示也从 API 获取的帖子以及所有使用提供程序的帖子我所做的是在主类主页中:
ChangeNotifierProvider<NewsRequest>(
child:News(title: "Bitcoin News",),
builder: (_) => NewsRequest() ),
Run Code Online (Sandbox Code Playgroud)
在两个屏幕上,我做了最后的
newsResponse = Provider.of<NewsRequest>(context);
Run Code Online (Sandbox Code Playgroud)
但出现这个错误
错误:在此描述小部件颤动上方找不到正确的提供者:颤动:要修复,请:颤动:颤动:* 确保提供者是此描述小部件颤动的祖先:* 向提供者提供类型颤动:* 向消费者提供类型flutter: * 为 Provider.of() 提供类型 flutter: * 始终使用包导入。例如:导入 'package:my_app/my_code.dart'; flutter: * 确保使用了
正确的上下文。
怎么解决????
当后台 firebase 中的应用程序首先处理通知,然后 flutter 本地通知在屏幕上显示弹出窗口以使 firebase 不显示通知时,我面临显示双重通知的问题
ps 删除
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
使应用程序不处理后台通知
FirebaseMessaging.onMessage.listen(
(RemoteMessage? message) async {
_showNotification(
id: 0,
title: message?.notification?.title ?? '',
body: message?.notification?.body ?? '');
},
);
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);
Run Code Online (Sandbox Code Playgroud)
firebaseMessagingBackgroundHandler:
Future<void> firebaseMessagingBackgroundHandler(RemoteMessage? message) async {
_showNotification(
id: 0,
title: message?.notification?.title ?? '',
body: message?.notification?.body ?? '');
}
Run Code Online (Sandbox Code Playgroud)
firebase 包在通知标志中包含标题和正文,即使应用程序在后台工作,以任何方式使通知仅由 flutter_local_notification 包处理
push-notification flutter firebase-cloud-messaging flutter-local-notification
每次我想调试我的颤振项目时,调试器都不会停在断点上,就像没有断点一样,即使未缓存的异常和调试器中的所有异常底部都在工作
我的
启动文件
文件
{
"version": "0.2.0",
"configurations": [{
"name": "Flutter",
"request": "launch",
"type": "dart",
"program": "lib/main.dart",
"args": [
"--debug",
"dev"
],
}]
}
Run Code Online (Sandbox Code Playgroud)
我尝试了默认的 launch.json 配置,但没有用
{
"version": "0.2.0",
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart"
}
]
}
Run Code Online (Sandbox Code Playgroud) 我正在使用device_info_plus插件来获取设备信息,但无法获取型号名称。
设备名称正在更改并且
utsname.machine
不要给我正确的名字
如何在 flutter 项目中获得正确的设备名称。
我正在尝试从 api 获取新闻数据并在主页中显示新闻标题,因为我知道它不会有任何内部更改,所以我决定使用StatelessWidget以及使用PROVIDER状态管理,现在我遇到了麻烦如何使用 StatelessWidget 调用获取方法,以便我可以显示标题
这是我获取数据的类
class NewsRequest with ChangeNotifier{
static String _url ="https://newsapi.org/v2/everything?q=bitcoin&from=2019-06-24&sortBy=publishedAt&apiKey=4d990bdd71324572bca39fe31edc3990";
static Map<String, String> _apiKey = {"apiKey" : "4d990bdd71324572bca39fe31edc3990"};
Map <String, dynamic> _data;
List _articles;
bool _isFetching = false;
Map<String, dynamic> result;
bool get isFetching => _isFetching;
Future<Map<String, dynamic>> fetchData() async{
_isFetching = true;
try{
Response response = await get(Uri.encodeFull(_url), headers: _apiKey)
.timeout(Duration(seconds: 60));
print("STATUSCODE ${response.statusCode}");
if(response.statusCode == 200){
_data = json.decode(response.body);
}
_isFetching = false;
notifyListeners();
}on SocketException catch(_){
}on TimeoutException catch(_){ …Run Code Online (Sandbox Code Playgroud)