我有一个使用 Firebase Analytics 的 Android 应用。在应用程序中,有一个功能可以打开另一个应用程序的网络视图,也使用 Firebase Analytics。
我很好奇为什么从网络视图打开应用程序时设备型号被记录为“未设置”? 示例报告设备型号未设置
从网页视图打开应用程序时如何记录设备型号?
将设备信息从 Native App 传递到 Webview:
您可以使用 JavaScript 将设备模型从 Android 原生层传递到 webview 中。在您的本机 Android 应用程序中,获取设备模型并将其注入到 webview 上下文中。
示例:
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
String deviceModel = android.os.Build.MODEL; // Get device model
myWebView.loadUrl("javascript:logDeviceModel('" + deviceModel + "')");
然后,在您的 Web 应用程序(位于 Web 视图内)中,创建一个如下 JavaScript 函数:
function logDeviceModel(model) {
// Log the device model to Firebase Analytics
firebase.analytics().logEvent('device_info', {
device_model: model
});
}
这将允许 Web 视图从本机应用程序接收设备模型并通过 Firebase 进行记录。
自定义 Firebase 事件:
如果您想在用户与 Web 视图交互时记录设备模型,您可以从本机端使用设备模型触发自定义 Firebase Analytics 事件。
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.DEVICE_MODEL, android.os.Build.MODEL);
mFirebaseAnalytics.logEvent("webview_opened", bundle);
这将确保打开 Web 视图时,设备模型被记录为事件的一部分。
我希望此信息可以解决您的错误。