feat(mobile,deploy): 接入安卓极光与华为通道并准备公网部署配置
客户端默认指向 jxd.jinniu.ink 的 HTTPS/WSS;登录后把 OpenIM userID 设为极光 alias。 华为 agconnect-services.json 不伪造、不入库。Master Secret 只从服务器文件注入。 Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
@@ -7,10 +7,12 @@ import 'screens/home_screen.dart';
|
||||
import 'screens/login_screen.dart';
|
||||
import 'services/call_service.dart';
|
||||
import 'services/im_service.dart';
|
||||
import 'services/push_service.dart';
|
||||
import 'theme.dart';
|
||||
|
||||
void main() {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
PushService.instance.init();
|
||||
runApp(const ChanglianApp());
|
||||
}
|
||||
|
||||
@@ -27,6 +29,7 @@ class _ChanglianAppState extends State<ChanglianApp> {
|
||||
super.initState();
|
||||
// 被踢下线 / token 失效:清凭证、回登录页
|
||||
IMService.instance.onForceLogout = () async {
|
||||
await PushService.instance.unbindUser();
|
||||
await LoginScreen.clearCredential();
|
||||
navigatorKey.currentState?.pushAndRemoveUntil(
|
||||
MaterialPageRoute(builder: (_) => const LoginScreen()),
|
||||
@@ -90,6 +93,7 @@ class _SplashGateState extends State<SplashGate> {
|
||||
await im.init().timeout(const Duration(seconds: 20));
|
||||
await im.login(userID: credential.$1, token: credential.$2).timeout(const Duration(seconds: 20));
|
||||
CallService.instance.start();
|
||||
await PushService.instance.bindUser(credential.$1);
|
||||
if (!mounted) return;
|
||||
Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (_) => const HomeScreen()));
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user