使用小程序SDK必備操作,缺少任一操作都會造成數據的缺失
操作說明
1.快速集成
在QuickTracking后臺,為每一個小程序生成了專屬的集成代碼,可以根據產品內的引導進行集成。
產品路徑
Quick Tracking「首頁」-「管理控制臺」,在「管理控制臺」進入「組織列表」功能,組織列表展示當前已創建的組織,找到應用歸屬組織,點擊「管理應用」功能跳轉到「應用管理]頁面,在已創建好的應用小愛點擊去「去集成」。
點擊「去集成」按鈕跳轉到新頁面可以獲取專屬集成代碼,點擊下一步按引導進入到「集成校驗」,確認集成是否成功。
2 集成代碼明細
如果因為特定原因,無法抵達上述頁面,需要觀看文檔才可以進行集成,具體集成代碼如下:
2.1 參數準備
appkey:在應用列表中獲取
收數域名:在“管理控制臺-采集信息”模塊中獲取
SDK鏈接:在“管理控制臺-采集信息”模塊中獲取
2.2 SDK引入
點擊SDK鏈接,將鏈接內JS文件導入工程內部。(建議導入路徑為src/utils)
const aplusConfig = {
metaInfo: {
'appKey': '', //平臺系統中創建應用時填寫的Appkey, 必填
'aplus-rhost-v': '', //采集日志上報域名,必填
'DEBUG': true, //是否展示采集日志
}
};
//聲明aplus采集sdk全局變量
const aplus = require('./utils/aplus_mini')(aplusConfig);
2.3 設置設備ID
由于小程序框架限制,QuickTracking SDK未自動生成任何設備ID,需要開發者授權QuickTracking自動獲取openid,或者開發者獲取openid/unionid等官方小程序ID后手動上傳作為設備ID,否則,QT SDK將無法進行任何日志上報。
手動上傳方式如下:
// inside app.js
const aplusConfig = {
metaInfo: {
... //sdk部分配置
'_hold': 'BLOCK' //阻塞日志上報,待openid&unionid成功獲取后再上報
... //sdk部分配置
}
};
//聲明aplus采集sdk全局變量
const aplus = require('./utils/aplus_mini')(aplusConfig);
wx.login({
success: (res) => {
// 通過 code 換取openid
if (res.code) {
wx.request({
url: 客戶業務側后端獲取openid的接口,
method: "post",
data: {
code: res.code,
},
success: (res) => {
if (res.data && res.data.openid) {
// 獲取的 openid 存入storage,方便之后使用
wx.setStorageSync("openId", res.data.openid);
wx.setStorageSync("unionId, res.data.unionid);
getApp().aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_anony_id', res.data.openid]
});
} else {
getApp().aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_anony_id', 業務側自己待實現的偽id]
});
}
},
});
}
},
fail: () => {
// 失敗提示信息等
},
complete: () => {
getApp().aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_hold', 'START']
});
},
});
自動獲取微信小程序openid方式如下:
目前QuickTracking支持自動采集微信小程序openid,需要在產品中進行授權。授權方式如下,點擊后按照要求填寫內容即可。
授權后,設置設備ID代碼方式為:
const aplusConfig = {
metaInfo: {
... //sdk部分配置
'autoGetOpenid': true //開啟openid自動采集
... //sdk部分配置
}
};
//聲明aplus采集sdk全局變量
const aplus = require('./utils/aplus_mini')(aplusConfig);
如果之前已經使用了手動設置openid,現希望改為上述的QuickTracking自動采集微信小程序openid,還需要注意以下內容:
移除metainfo中設置_hold=BLOCK的SDK阻塞上報邏輯
注釋掉之前手動設置「_anony_id=openid」的相關邏輯代碼,也就是移除從wx.login中獲取openid的相關代碼。
注意,務必確保關于設置appKey和收數域名的內容不受影響。
示例代碼如下:
// inside app.js
const aplusConfig = {
metaInfo: {
... //sdk部分配置
//1.移除設置_hold=BLOCK的SDK阻塞上報邏輯
//'_hold: 'BLOCK' //阻塞日志上報,待openid&unionid成功獲取后再上報
... //sdk部分配置
}
};
//聲明aplus采集sdk全局變量
const aplus = require('./utils/aplus_mini')(aplusConfig);
/**
2.移除 wx.login中獲取openid的相關代碼
wx.login({
success: (res) => {
// 通過 code 換取openid
if (res.code) {
wx.request({
url: 客戶業務側后端獲取openid的接口,
method: "post",
data: {
code: res.code,
},
success: (res) => {
if (res.data && res.data.openid) {
// 獲取的 openid 存入storage,方便之后使用
wx.setStorageSync("openId", res.data.openid);
wx.setStorageSync("unionId, res.data.unionid);
getApp().aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_anony_id', res.data.openid]
});
} else {
getApp().aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_anony_id', 業務側自己待實現的偽id]
});
}
},
});
}
},
fail: () => {
// 失敗提示信息等
},
complete: () => {
getApp().aplus.aplus_queue.push({
action: 'aplus.setMetaInfo',
arguments: ['_hold', 'START']
});
},
});
*/
在授權微信小程序時需要提供小程序的AppID和AppSecret,可從微信小程序管理后臺的「開發-開發管理-開發設置」中獲取。
2.4 設置域名白名單
以微信小程序為例:登錄小程序后臺,進入開發設置-> 服務器域名白名單,把您的收數域名添加至白名單
2.5 初始化SDK
在app.js的onLaunch中,引入aplus
App({
aplus, //全局引入aplus
onLaunch(){},
onShow(){},
onHide(){}
})
3 常見問題
3.1 如何獲取離線SDK?
在QuickTracking后臺的“管理控制臺-采集信息”模塊中獲取SDK鏈接后,點擊SDK鏈接并“ctrl+s”或者“command+s”進行下載保存。