如何在Xamarin Forms(iOS)中向Dynatrace仪表盘记录事件
在Xamarin Forms(iOS)中集成Dynatrace并记录自定义事件的解决方案
1. 先确认基础集成有效性
- 检查iOS项目
AppDelegate.cs的FinishedLaunching方法,确保Dynatrace初始化代码正确执行,且配置了正确的环境ID:public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); LoadApplication(new App()); var dtConfig = new Dynatrace.Configuration.Builder() .WithEnvironmentId("你的环境ID") .Build(); Dynatrace.Startup(dtConfig); return base.FinishedLaunching(app, options); } - 启动应用后,先验证Dynatrace仪表盘是否能捕获到应用会话、启动事件等基础数据,排除集成本身的问题。
2. 记录按钮点击事件
直接在Xamarin Forms的按钮点击事件/Command中调用Dynatrace的用户事件上报API即可:
private void SubmitButton_Clicked(object sender, EventArgs e) { // 基础点击事件上报 Dynatrace.Actions.ReportUserAction("Submit_Button_Click"); // 带自定义属性的上报(可选) var eventAttrs = new Dictionary<string, string> { {"Page", "Checkout"}, {"ButtonText", "提交订单"} }; Dynatrace.Actions.ReportUserAction("Submit_Button_Click", eventAttrs); }
3. 记录方法调用事件
用StartUserAction和Stop包裹方法逻辑,还能中途上报事件状态:
public async Task ProcessPayment() { var action = Dynatrace.Actions.StartUserAction("Process_Payment_Method"); try { // 业务逻辑 await PaymentService.CompletePayment(); // 上报成功事件 action.ReportEvent("Payment_Success", new Dictionary<string, string> { {"OrderId", "ORD-1001"} }); } catch (Exception ex) { // 上报错误信息 action.ReportError("Payment_Failed", ex.Message); } finally { // 结束事件追踪 action.Stop(); } }
4. iOS平台专属检查项
- 确保iOS项目已正确安装Dynatrace NuGet包,且版本与共享项目一致。
- 检查
Info.plist的网络权限:如果使用Dynatrace的HTTPS端点,无需额外配置;若为HTTP,需添加NSAppTransportSecurity例外允许连接到Dynatrace服务器。 - 查看iOS控制台日志,搜索
Dynatrace关键词,排查是否有初始化失败、事件上传失败的错误提示。
5. 仪表盘验证
自定义事件上传存在几分钟延迟,可前往Dynatrace仪表盘的「用户操作」或「自定义事件」板块查看。若长时间未出现,检查环境ID是否正确、设备网络是否正常,或在Dynatrace后台查看数据上传日志。
内容的提问来源于stack exchange,提问作者MainakChoudhury
相关产品推荐
相关产品推荐

