繁体   English   中英

在 node.js 应用程序中,如何检查用户设备上的应用程序是否安装?

[英]In a node.js application, how to check the application on user's device is installed or not?

在 Node & Express.js 应用程序中,如何检查应用程序是否安装在用户的手机上? 我只有用户的手机号码。 我知道所谓的“深度链接”或“客户 URL 方案”可以提供帮助。 但我对此知之甚少。 谁能帮我提供更多细节或资源?

任何形式的建议和意见将不胜感激。 谢谢你。

您可以通过两种方式跟踪应用程序卸载:

静默推送通知- 通过每天发送静默推送通知

实时- 一旦用户卸载应用程序。 此实时跟踪仅适用于 Android 器件。

  1. 静默推送通知(iOS 和 Android)

    静默通知是一种简单但有效的检查令牌有效性的机制。 无效的令牌通常表示应用程序已被卸载。 您可以使用静默推送通知来跟踪 Android 和 iOS 应用程序的应用程序卸载。 静默推送通知包含一条空消息,该消息通过 Firebase 云消息 (FCM) 服务器(用于 Android 设备)或 Apple 推送通知服务 (APNs)(用于 Z1BDF605991920DB11CBDF850820 设备)发送到用户设备。

  2. 实时卸载跟踪 (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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM