简体   繁体   English

我已经在 Flutter 中使用了 Google Analytics,如何从原生 iOS/Android 代码向它发送事件?

[英]I use Google Analytics in Flutter already, how can I also send events to it from native iOS/Android code?

I use firebase for flutter, where all the dependencies are on pubspec.yaml I would like to send an event to Firebase Analytics for some activities on the native side - Home screen widget, notification received, etc.我使用 firebase 进行颤动,其中所有依赖项都在 pubspec.yaml 上

Is it possible?可能吗? FirebaseAnalytics class is not recognized on Android and if I add it to gradle, it might collide with flutter. FirebaseAnalytics 类在 Android 上无法识别,如果我将它添加到 gradle,它可能会与颤振发生冲突。

Using PlatformChannel is a solution for this case, see platform-channels .使用PlatformChannel是这种情况的解决方案,请参阅platform-channels Example code (original code from here :示例代码(来自这里的原始代码:

  • Android side:安卓端:
package com.example.shared;

import android.content.Intent;
import android.os.Bundle;

import androidx.annotation.NonNull;

import io.flutter.plugin.common.MethodChannel;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.plugins.GeneratedPluginRegistrant;

public class MainActivity extends FlutterActivity {

  private static final String CHANNEL = "app.channel.shared.data";
  private String sharedText;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    
    sharedText = "Home screen displayed";
  }

  @Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
      GeneratedPluginRegistrant.registerWith(flutterEngine);

      new MethodChannel(flutterEngine.getDartExecutor().getBinaryMessenger(), CHANNEL)
              .setMethodCallHandler(
                      (call, result) -> {
                          if (call.method.contentEquals("onScreenView")) {
                              result.success(sharedText);
                              sharedText = null;
                          }
                      }
              );
  }

}

  • Flutter side:颤振侧:
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  runApp(const SampleApp());
}

class SampleApp extends StatelessWidget {
  const SampleApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sample Shared App Handler',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const SampleAppPage(),
    );
  }
}

class SampleAppPage extends StatefulWidget {
  const SampleAppPage({super.key});

  @override
  State<SampleAppPage> createState() => _SampleAppPageState();
}

class _SampleAppPageState extends State<SampleAppPage> {
  static const platform = MethodChannel('app.channel.shared.data');
  String dataShared = 'No data';

  @override
  void initState() {
    super.initState();
    getSharedText();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(body: Center(child: Text(dataShared)));
  }

  Future<void> getSharedText() async {
    var sharedData = await platform.invokeMethod('onNotificationClicked');
    if (sharedData != null) {
      setState(() {
        dataShared = sharedData;

        // Send data to Firebase Analytics here
      });
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 为什么我看不到我从移动Google Analytics(分析)发送的事件? - Why can't i see the events i send from my mobile google analytics? 我可以在Android和IOS应用程序上检索要显示在我的应用程序中的Google Analytics(分析)事件吗? - Can i retrieve Google Analytics events count on Android and IOS applications to display in my app? 如何使用Google Analytics API v2从Android发送崩溃报告 - How can I send crash reports from Android using Google Analytics API v2 如何从 flutter 中的 flutter 代码向 android 本机代码发送数据 - How to send data to the android native code from the flutter code in flutter 如何在android中发送关键事件? - How can I send key events in android? 如何在iOS和Android上的PhoneGap中搜索原生Google Maps应用中的一串文字? - How can I search for a string of text in the native Google Maps app from PhoneGap on iOS AND Android? 如何在Ionic Application中使用原生iOS / Android地图? - How can I use native iOS/Android maps in Ionic Application? 如何在Android Native Code中使用Keystore? - How can I use Keystore in Android Native Code? Android中的Google Analytics(分析):如何发送“非交互”事件? - Google Analytics in Android : How send 'non interaction' events? Android:我可以在Firebase App中使用Google Analytics(分析) - Android: Can I use Google Analytics with Firebase App
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM