信息报告

本文介绍信息报告类WVReporter相关的JS API,供您在通过跨平台DevOps创建H5端应用或者小程序时参考。信息报告类WVReporter的JS API提供报告页面信息相关的能力,例如报告页面的JS错误、首字节时间和DomLoad事件时间。

WVReporter.reportDomLoad

报告当前页面的首字节时间和DomLoad事件时间,供H5性能埋点使用。

WindVane iOS 8.2.0 或更高版本 中,WindVane会自动捕获DOMContentLoaded事件的时间,与页面自己的埋点不会产生冲突。

输入参数

  • [number]firstByte:当前页面的首字节时间(单位:毫秒),可通过使用Date.now()获得。

  • [number]time:当前页面的DomLoad事件时间(单位:毫秒),可通过使用Date.now()获得。

回调参数

无回调参数,如果报告信息成功,则进入success回调,否则进入failure 回调。

(function () {
        var firstByteTime = Date.now();
        document.addEventListener("DOMContentLoaded", function () {
                if (window.WindVane) {
                        var params = {
                                firstByte: firstByteTime,
                                time: Date.now()
                        };
                        window.WindVane.call("WVReporter", "reportDomLoad", params);
                }
        }, false);
})();

WVReporter.reportError

报告当前页面的JS错误,会通过AppMonitor的WindVane:JavaScriptError埋点上传。

WindVane iOS 8.2.0或更高版本中,WindVane会自动捕获JS错误,并设置from = 'WindVane',便于与业务方自己的埋点区分开来。

输入参数

  • [string]file:发生JS错误的JS文件。

  • [string]url:(可选)要上传的URL,默认使用当前页面的URL。

  • [string]msg:JS错误信息。

  • [string]line:发生JS错误的JS行号。

  • [string]col:发生JS错误的JS列号。

  • [string] tack:发生JS错误的JS堆栈。

  • [string]from:(可选)错误埋点的来源,用于区分同样的错误被多次捕获。

回调参数

无回调参数,如果报告信息成功,则进入success回调,否则进入failure回调。

示例

(function () {
        if (window.WindVane) {
                var oldOnError = window.onerror
                window.onerror = function (message, file, lineno, colno, error) {
                        var params = {
                                file: file,
                                msg: message
                                line: lineno,
                                col: colno,
                                stack: error ? error.stack : ''
                        };
                        window.WindVane.call("WVReporter", "reportError", params);
                        if (oldOnError) {
                                return oldOnError(message, file, lineno)
                        }
                        return false
                }
        }
})();