Ionic2混合开发,入坑系列:Ionic2中集成腾讯Bugly之自定义插件

1、编写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]);
}
};
2、配置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>
3、编写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; }
}
4、配置config.xml文件
<feature name="CallCordovaBugly">
<param name="android-package" value="org.apache.cordova.bugly.CallCordovaBugly" />
</feature>
5、编写自定义插件类(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() > ) {
Log.i("Bugly", args.toString());
//RuntimeException e = new RuntimeException("自定义异常上报");
throw new RuntimeException(args.toString());
} } catch (Exception e) {
CrashReport.postCatchedException(e);
}
return true;
}
}
6、在Application中初始化Bugly环境
Bugly有自动上报与手动上报区分
//初始化Bugly收集器(为了保证运营数据的准确性,建议不要在异步线程初始化Bugly)
//CrashReport.initCrashReport(getApplicationContext(),"VvqUAywlen5oT4IH",false);
CrashReport.initCrashReport(getApplicationContext());
 

Ionic2中集成腾讯Bugly之自定义插件的更多相关文章

  1. Ionic2中集成第三方控件Sweetalert

    Ionic2混合开发,入坑系列:Ionic2中集成第三方控件Sweetalert 注:Sweetalert2已经可以直接从npm中下载安装 npm install --save sweetalert2 ...

  2. 集成腾讯Bugly日志- Android(1)

    Bugly 是腾讯公司为移动开发者开放的服务之一,这里主要指 Crash 监控.崩溃分析等质量跟踪服务. 一.登录BUGLY官网 1.登录BUGLY官网以后,选择新建产品,选择IOS或ADNROID平 ...

  3. 在ionic2中集成swiper插件

    1. 下载官方的js和css文件分别放在assets下的js和css文件夹,然后在index.html中引入 <!DOCTYPE html> <html lang="en& ...

  4. Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线

    Andoird Crash的跟踪方法,使用腾讯Bugly来捕捉一些疑难杂症,让我们APP稳定上线 我们在开发中常常会注意到一些Crash,这正是很头疼的,而且Crash会带来很多意想不到的状态,很恶心 ...

  5. Ionic2系列——在Ionic2中使用ECharts

    在群里看到有人问怎么在Ionic2中集成ECharts来显示图表.当时答应说写个blog,简单写下步骤. 在TypeScript中如果要使用第三方库,必须要有d.ts,也就是定义文件,没有这个文件的话 ...

  6. 你的专属定制——JQuery自定义插件

        前  言 絮叨絮叨 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗 ...

  7. Ionic2中腾讯Bugly异常捕获以及上报

    Ionic2混合开发,入坑系列:Ionic2中腾讯Bugly异常捕获以及上报 1.Ionic2中处理全局异常,直接继承IonicErrorHandler即可,代码如下 import { IonicEr ...

  8. 【腾讯Bugly干货分享】深度学习在OCR中的应用

    本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/5809bb47cc5e52161640c5c8 Dev Club 是一个交流移动 ...

  9. 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...

随机推荐

  1. Dictionary使用(转)

    1.要使用Dictionary集合,需要导入C#泛型命名空间 System.Collections.Generic(程序集:mscorlib)2.描述 1).从一组键(Key)到一组值(Value)的 ...

  2. 判断activity是否显示在界面上

    boolean result = false; ActivityManager am = (ActivityManager) context .getSystemService(Context.ACT ...

  3. js原生:封装document.getElementByClassName()函数

    //接口封装:封装document.getElementByClassName()函数function getElementsByClassName (cName,domTag,root) {//该函 ...

  4. phpcms推荐位数据库字段详解

  5. php5.4下配置zend guard loader

    前些日子的时候,zend官网下还没有支持PHP5.4的zend guard loader,今天再上去看的时候居然发现了,看来是我好久不关注它的缘故了... zend guard loader 干什么的 ...

  6. 【翻译】在Visual Studio中使用Asp.Net Core MVC创建第一个Web Api应用(二)

    运行应用 In Visual Studio, press CTRL+F5 to launch the app. Visual Studio launches a browser and navigat ...

  7. JS模板引擎:基于字符串拼接

    目的 编写一个基于字符串拼接的js模板引擎雏形,这里并不会提供任何模板与数据的绑定. 基本原理 Javascript中创建函数的方式有多种,包括: 1. var func = function () ...

  8. NSArray和NSSet的区别

    NSSet到底什么类型? 其实它和NSArray功能性质一样,用于存储对象,属于集合: NSSet  , NSMutableSet类声明编程接口对象,无序的集合,在内存中存储方式是不连续的 像NSAr ...

  9. 深入理解Java Proxy

    深入理解Java Proxy: http://blog.csdn.net/rokii/article/details/4046098 整理之后的代码: package com.stono.reftes ...

  10. Vue.js自定义指令的用法与实例

    市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲自定义指令的用法. 自定义指令是用来操作DOM的.尽管Vu ...