JS自定义业务
JS自定义错误
使用「自定义错误」接口可以采集研发人员「try / catch 异常」和「业务错误」并在基调听云平台「异常分析」→「错误」中进行展示,可以帮助研发人员收集异常和错误。
- 相关接口
//您需要将以下代码,保存为tingyun@app-fix.js,添加到项⽬中
if(!window['NBSAppAgent']){
function nbs_callMethod(functionName, args) {
var wrap = {'method':functionName,'params':args};
var info = JSON.stringify(wrap);
if(typeof nbsJsBridge != 'undefined') {
nbsJsBridge.parseArguments(info);
}else if(typeof window.webkit != 'undefined'){
if (!window.webkit.messageHandlers['nbsJsBridge']) return;
window.webkit.messageHandlers['nbsJsBridge'].postMessage(info);
}
}
var NBSAppAgent = {};
/*
* 自 定义错误:
* message 长度最大1024字节
* metaData的value值支持 Number,String,Array,Map类型,最大128k。
*/
NBSAppAgent.reportError = function(message, metaData, exception) {
if(!exception)
return;
if(!message)
message = '';
if(!metaData)
metaData = {};
var error = {message:exception.message,line:exception.line,column:exception.column,sourceURL:exception.sourceURL,stack:exception.stack,type:exception.name}
nbs_callMethod('reportError', { 'message': message, 'exception': error, 'metaData': metaData });
};
window['NBSAppAgent'] = NBSAppAgent;
}
- 代码示例
<script src="tingyun@app-fix.js"></script>
function jsCustomError() {
try{console.log(abc)}
catch(e){
NBSAppAgent.reportError("JS-Customerror-Webview-jsMessage",{"metaDataKey":"metaDataValue"},e);
}
}
JS自定义事件
自定义事件可以统计 App 中的任意事件,开发者在 SDK 初始化后的任意位置调用「自定义事件接口并设置对应上传参数」。 如:真实用户操作时点击某个功能按钮或触发了某个功能事件等。
- 相关接口
//您需要将以下代码,保存为tingyun@app-fix.js,添加到项⽬中
if(!window['NBSAppAgent']){
function nbs_callMethod(functionName, args) {
var wrap = {'method':functionName,'params':args};
var info = JSON.stringify(wrap);
if(typeof nbsJsBridge != 'undefined') {
nbsJsBridge.parseArguments(info);
}else if(typeof window.webkit != 'undefined'){
if (!window.webkit.messageHandlers['nbsJsBridge']) return;
window.webkit.messageHandlers['nbsJsBridge'].postMessage(info);
}
}
/**
* 采集自定义事件
* @param name 事件名称,不能为空,长度限制为1024字符,超过截取前1024字符
* @param properties 事件属性
*/
var NBSAppAgent = {};
NBSAppAgent.reportEvent = function(name, properties) {
if(!name)
return;
if(!properties)
eventProperties = {};
nbs_callMethod('reportEvent', { 'name': name, 'properties': properties });
};
window['NBSAppAgent'] = NBSAppAgent;
}
- 代码示例
<script src="tingyun@app-fix.js"></script>
function jsCustomEvent() {
NBSAppAgent.reportEvent("JS_reportEvent_name",{"key":"value"});
}