Ionic2中集成騰訊Bugly之自定義插件

Ionic2混合開發,入坑系列:Ionic2中集成騰訊Bugly之自定義插件html

 

一、編寫Bugly.js代碼
var exec = require('cordova/exec');
module.exports = {
    /**
     * 發送Bugly異常信息
     * @param success 成功回調函數
     * @param error   錯誤回調函數
     * @param params  參數值
     */
    buglySend: function (success, error, params) {
        exec(success, error, "CallCordovaBugly", "buglySend", [params]);
    }
};
二、配置plugin.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- Bugly自定義插件配置-->

<plugin xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:rim="http://www.blackberry.com/ns/widgets"
    id="cordova-plugin-bugly" version="1.0.0"
    xmlns="http://apache.org/cordova/ns/plugins/1.0">
    <name>Bugly</name>
    <description>Cordova Bugly Plugin</description>
    <license>Apache 2.0</license>
    <keywords>cordova,bugly</keywords>
    <engines>
        <engine name="cordova" version=">=3.0.0" />
    </engines>
    <js-module name="bugly" src="www/bugly.js">
        <clobbers target="window.plugins.bugly" />
    </js-module>
</plugin>
三、編寫TypeScript代碼
import { Plugin, Cordova } from 'ionic-native'

@Plugin({
        pluginName: 'Bugly',
        plugin: 'cordova-plugin-bugly',
        pluginRef: 'window.plugins.bugly',
        platforms: ['Android', 'iOS']
        })
export class Bugly {
    @Cordova({ promise: true })
    static buglySend(params: string): Promise<string> { return; }
}
四、配置config.xml文件
<feature name="CallCordovaBugly">
    <param name="android-package" value="org.apache.cordova.bugly.CallCordovaBugly" />
</feature>
五、編寫自定義插件類(Java代碼)
package org.apache.cordova.bugly;
import android.util.Log;
import com.tencent.bugly.crashreport.CrashReport;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * //TODO (用一句話描述該文件作什麼)
 *
 * @package: org.apache.cordova.bugly.CallCordovaBugly
 * @author: ailsabe@126.com
 * @date: 2017/1/20
 * @description: //TODO (詳細描述該文件作什麼)
 */
public class CallCordovaBugly extends CordovaPlugin {

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {

        try {
            if (args.length() > 0) {
                Log.i("Bugly", args.toString());
                //RuntimeException e = new RuntimeException("自定義異常上報");
                throw new RuntimeException(args.toString());
            }

        } catch (Exception e) {
            CrashReport.postCatchedException(e);
        }
        return true;
    }
}
六、在Application中初始化Bugly環境
Bugly有自動上報與手動上報區分
//初始化Bugly收集器(爲了保證運營數據的準確性,建議不要在異步線程初始化Bugly)
//CrashReport.initCrashReport(getApplicationContext(),"VvqUAywlen5oT4IH",false);
CrashReport.initCrashReport(getApplicationContext()); 
相關文章
相關標籤/搜索