[英]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.