簡體   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