一.添加cordova插件
1.查看当前cordova项目拥有的插件
命令行中打开当前项目目录 , 输入cordova plugin ls
, 结果如图:
2.添加"本地消息通知"插件(安卓6.0以上 , 点击消息通知 , 程序会闪退 )
cordova的插件可以在这里搜索:cordova插件搜索
此次选用的本地消息通知插件是cordova-plugin-local-notifications-npm
, 可以在上面的链接进行查看 , 也可以选用其他的插件.
命令行中打开当前项目目录 , 输入cordova plugin add cordova-plugin-local-notifications-npm
, 安装插件:
安装后 , 打开根目录下的config.xml , 可以看到文件中自动添加了一行代码:
二.使用cordova插件
1.修改vue_web
目录下的index.html文件 , 引入cordova.js
, 如图:
2.修改vue_web/src
目录下的main.js
文件 , 添加事件监听 , 如图:
3.调用本地消息通知插件
在点击登录后 , App推送一条消息通知给用户 , 在登录方法内添加如下代码:
cordova.plugins.notification.local.schedule({
id: 1,
title: '应用提醒',
text: '你有一条新消息',
at: new Date().getTime(),
badge: 2
});
vue_web
下运行npm run build
CordovaDemo
下运行cordova run android
在app中点击登录 , 执行插件的方法后 ,便可以看到app发出的消息推送.
三.解决android 6.0 以上版本点击消息通知会闪退的问题.
1.在使用本地消息通知插件的时候 , 出现一个问题 , 消息通知可以正常发出 , 但是在通知栏点击消息后 , 程序就会闪退.
2.使用android studio 调试程序 , 寻找错误.
打开android studio , 导入platforms目录下的android文件夹
如果出现提示说要 update gradle , 可以不更新 , 之前调试更新了, 然后编译的时候出错 , 暂时不知什么原因.
点击下图中的
android
, 更换为porject
点击
run android
, 用模拟器运行项目 , 点击底部Logcat
, 查看日志.
Google 后发现 , android 6.0 后 , activity 中如果没有UI , 会直接抛出错误 , 导致程序闪退.
3.解决闪退问题
打开android
目录下的android.json , 找到下面的代码
"xml": "<activity android:exported=\"false\" android:launchMode=\"singleInstance\" android:name=\"de.appplant.cordova.plugin.localnotification.ClickActivity\" android:theme=\"@android:style/Theme.NoDisplay\" />"
将android:theme=\"@android:style/Theme.NoDisplay\"
改为android:theme=\"@android:style/Theme.Translucent.NoTitleBar\"
意思就是将主题设置成透明 , 而不是没有UI , 这样就能把问题解决.
修改后保存 , 然后cordova build android
, 然后可以在android studio 中run android或者cardova run android
进行调试.