You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Infobip通知后返回页异常及登录校验需求求助

关于Flutter中infobip_mobilemessaging聊天与推送通知的问题

我在Flutter项目中使用infobip_mobilemessaging: ^6.1.1实现聊天及推送通知功能,已完成以下配置:

已完成的配置

  1. 更新/android/app/src/main/res/values/strings.xml文件:
<resources>
    <string name="infobip_application_code">application code here</string>
   
</resources>
  1. 更新应用级build.gradle:
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation platform('com.google.firebase:firebase-bom:31.0.2')
    implementation ('com.infobip:infobip-mobile-messaging-android-sdk:12.8.0@aar') {
        transitive = true
    }

    // Other dependencies
}
  1. 更新项目级build.gradle:
buildscript {
    ext.kotlin_version = '1.9.0'  // Set the Kotlin version
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:8.0.2'  // Update this line
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.13'

    }
}
  1. 编写ChatPage页面:
class ChatPage extends StatefulWidget {
  const ChatPage({super.key});

  @override
  State<ChatPage> createState() => _ChatPageState();
}

class _ChatPageState extends State<ChatPage> {
  late Future<void> _initializeChatFuture;

  @override
  void initState() {
    super.initState();
    _initializeChatFuture = _initializeChat();
  }

  Future<void> _initializeChat() async {
    await initialize();
    await Future.delayed(const Duration(seconds: 2));
  }

  Future<void> initialize() async {
    try {
      log('InfobipService initialized');

      await InfobipMobilemessaging.init(mmconfiguration.Configuration(
        applicationCode: 'application code here',
        inAppChatEnabled: true,
        fullFeaturedInAppsEnabled: false,
        defaultMessageStorage: true,
        privacySettings: mmconfiguration.PrivacySettings(
          userDataPersistingDisabled: false,
          carrierInfoSendingDisabled: false,
          systemInfoSendingDisabled: false,
        ),
      ));

      await InfobipMobilemessaging.registerForRemoteNotifications();

      InfobipMobilemessaging.on(
        LibraryEvent.notificationTapped,
        (Message message) {
          setState(() {
            AppStrings.isNotiTapped=true;
          });
        },
      );

    } catch (e) {
      log('Error initializing Infobip Mobile Messaging: $e');
      // Handle initialization error
    }
  }

  @override
  Widget build(BuildContext context) {
    log('AppStrings.isNotiTapped  ${AppStrings.isNotiTapped}');
    return Scaffold(
      appBar: AppBar(
        leading: IconButton(
          icon: Icon(Icons.arrow_back),
          onPressed: () {
            Navigator.pop(context);
          },
        ),
        title: Text('Chat Page'),
      ),
      backgroundColor: Colors.white,
      body: FutureBuilder<void>(
        future: _initializeChatFuture,
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return const Center(
              child: CircularProgressIndicator(
                backgroundColor: Colors.teal,
              ),
            );
          } else if (snapshot.connectionState == ConnectionState.done) {
            log('DONE');

            WidgetsBinding.instance.addPostFrameCallback((_) {
              if (mounted) {
              Navigator.pop(context);
                InfobipMobilemessaging.showChat();
              }
            });
            return const Center(
              child: Text('Chat is loading...'),
            );
          } else {
            return const Center(
              child: Text('Error initializing chat'),
            );
          }
        },
      ),
    );
  }
}

页面流程

应用页面流程为:启动页(splashscreen)→ 首页(homescreen)→ 聊天页(chatpage),从首页导航进入聊天页。

当前问题

  1. 从首页进入聊天页后返回,可正常回到首页;但在首页点击聊天通知打开聊天页后,返回却跳转至启动页,不符合预期;
  2. 应用进程被杀死后,点击通知打开聊天页,返回同样跳转至启动页。

额外需求

需要添加登录校验逻辑:用户已登录时直接打开聊天页,未登录时跳转至启动页再进入登录页。

补充发现

移除initialize方法仍可加载聊天,但移除strings.xml中的应用代码则无法加载,看过官方相关文档但不知如何应用,恳请协助解决该问题。

内容的提问来源于stack exchange,提问作者user1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 15:19:56