我正在使用 Flutter 开发一个 iOS 应用程序,它会在我连接的 iPhone 上构建和加载。如果我锁定 iPhone 并在几秒钟内解锁,连接仍然存在,但如果我锁定 iPhone 约 20 秒,连接就会丢失,我需要重建。在设备锁定时我可以做些什么来保持会话?
是的,发生这种情况很正常,但是您可以使用 flutter_heartbeat 之类的保持活动状态。 试试这个:
在你的 pubspec.yaml 添加这个:
dependencies:
flutter_heartbeat: ^0.1.1
然后导入包
import 'package:flutter_heartbeat/flutter_heartbeat.dart';
void main() {
runApp(MyApp());
FlutterHeartbeat.startHeartbeat();
}
并在构建方法中创建一个调用心跳的小部件
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
home: Scaffold(
appBar: AppBar(
title: Text('My App'),
),
body: Center(
child: Heartbeat(
interval: Duration(seconds: 5),
timeout: Duration(seconds: 15),
onTimeout: () {
print('Connection timed out.');
},
child: Text('Hello, world!'),
),
),
),
);
}
}
现在heartbeat会每5秒向app发送一个heartbeat请求,如果在15秒内没有收到响应,它会调用onTimeout回调...此时连接应该保持活跃,即使设备已锁定。