[英]In a node.js application, how to check the application on user's device is installed or not?
在 Node & Express.js 应用程序中,如何检查应用程序是否安装在用户的手机上? 我只有用户的手机号码。 我知道所谓的“深度链接”或“客户 URL 方案”可以提供帮助。 但我对此知之甚少。 谁能帮我提供更多细节或资源?
任何形式的建议和意见将不胜感激。 谢谢你。
您可以通过两种方式跟踪应用程序卸载:
静默推送通知- 通过每天发送静默推送通知
实时- 一旦用户卸载应用程序。 此实时跟踪仅适用于 Android 器件。
静默推送通知(iOS 和 Android)
静默通知是一种简单但有效的检查令牌有效性的机制。 无效的令牌通常表示应用程序已被卸载。 您可以使用静默推送通知来跟踪 Android 和 iOS 应用程序的应用程序卸载。 静默推送通知包含一条空消息,该消息通过 Firebase 云消息 (FCM) 服务器(用于 Android 设备)或 Apple 推送通知服务 (APNs)(用于 Z1BDF605991920DB11CBDF850820 设备)发送到用户设备。
实时卸载跟踪 (Android)
检查 Android 应用程序是否与 Firebase Analytics 集成以进行实时卸载跟踪。
当用户从其 Android 设备卸载应用程序时,名为 app_remove 的 Firebase 事件会跟踪此应用程序的卸载。 您可以使用 Firebase 云函数将此事件推送到您的服务器
实施实时卸载跟踪
实时卸载跟踪是一个四步过程:
在您的应用中设置通用标识符
将 app_remove 事件设置为 Firebase 中的转换事件
使用 Firebase 云 function 将卸载信息发送到您的服务器
设置公共标识符将以下代码添加到您的应用程序以在 Firebase 和您的服务器之间设置一个公共标识符。
Java(客户端实现)
private FirebaseAnalytics mFirebaseAnalytics;
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
mFirebaseAnalytics.setUserProperty("uuId","Your server clientId");
使用 Firebase 设置转换事件
要设置实时卸载,请检查是否在 Firebase 仪表板上设置了转换事件。 Firebase 分析跟踪名为 app_remove 的事件,这是自动收集的 Firebase 事件之一。 app_remove 事件是一个仅限 Android 的事件,当应用程序 package 从设备中删除或卸载时,无论安装源如何,都会跟踪该事件。
要设置转换,请执行以下步骤:
Select Firebase 项目与 Android 应用程序集成。 从 Firebase 仪表板,select 分析 > 事件。 为 app_remove 启用标记为转换开关。
创建云 Function
设置转换后,使用 Cloud Function for Firebase 创建 function 并将 app_remove 数据发送到您的服务器。
要使用 Node JS 创建和发布云 function,请执行以下步骤:
打开一个终端。 设置 Node.js 和 Firebase CLI。
Run npm install -g firebase tools.
要为 Cloud Functions 初始化 Firebase SDK,请运行 firebase login。 从您的 Firebase 项目目录中,运行 firebase 初始化函数。 Select Javascript 作为语言选项。 打开 index.js 并添加以下代码:
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const https = require('https');
var request = require('requestretry');
admin.initializeApp();
exports.sendAndroidUninstallToServer =
functions.analytics.event('app_remove').onLog((event) => {
//console.log("Event is: " + JSON.stringify(event));
function myRetryStrategy(err, response, body, options) {
// retry the request if we had an error or if the response was a
'Bad Gateway'
return !!err || response.statusCode === 503;
}
var uuId = event.user.userProperties.uuId.value;
// This is where the UUD ID of the user who uninstalled the app is passed as an identifier in the API call.
const data = JSON.stringify({
"d": [{
"objectId": uuId,
"type": "event",
"evtName" : "App Uninstalled",
"evtData": {
}
}]
});
//send data to your server
}
, function (err, response, body) {
// this callback will only be called when the request succeeded or
after maxAttempts or on error
if (response && response.statusCode === 200) {
console.log("Response Body: " + JSON.stringify(body));
console.log('The number of request attempts: ' +
response.attempts);
return 0;
}else{
console.log("err: " + err + " ,response: " +
JSON.stringify(response) + " , body: " + JSON.stringify(body));
return 1;
}
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.