UniApp 自动收发短信
1.接收短信代码段
var callbacks = [];
var receiver;
var filter;
var main;
var isInit = false;
var isRegistered = false;
var isOlderVersion = false; //plusReady封装,若使用mui,可直接使用mui.plusReady()方法;
var plusReady = function(){ if (window.plus) { callback(); } else { document.addEventListener("plusready", function() { callback(); }, false); }
} /**
* 初始化
*/
var init = function(callback) { //仅支持Android版本 if (plus.os.name !== 'Android') { return; } try { var version = plus.runtime.innerVersion.split('.'); isOlderVersion = parseInt(version[version.length - 1]) < 22298; main = plus.android.runtimeMainActivity(); var Intent = plus.android.importClass('android.content.Intent'); var IntentFilter = plus.android.importClass('android.content.IntentFilter'); var SmsMessage = plus.android.importClass('android.telephony.SmsMessage'); var receiverClass = 'io.dcloud.feature.internal.reflect.BroadcastReceiver'; if (isOlderVersion) { receiverClass = 'io.dcloud.feature.internal.a.a'; } filter = new IntentFilter(); var onReceiveCallback = function(context, intent) { try { var action = intent.getAction(); if (action == "android.provider.Telephony.SMS_RECEIVED") { var pdus = intent.getSerializableExtra("pdus"); var msgs = []; for (var i = 0, len = pdus.length; i < len; i++) { msgs.push(SmsMessage.createFromPdu(pdus[i])); } for (var i = 0, len = callbacks.length; i < len; i++) { callbacks[i](msgs); } } } catch (e) {} } receiver = plus.android.implements(receiverClass, { a: onReceiveCallback, onReceive: onReceiveCallback }); filter.addAction("android.provider.Telephony.SMS_RECEIVED"); callback && callback(); } catch (e) {}
} //注册短信监听
var register = function(callback) { callbacks.push(callback); if (!isInit) { isInit = isRegistered = true; plusReady(function() { init(function() { setTimeout(function() { // console.log('registerReceiver'); try { if (isOlderVersion) { main.a(receiver, filter); } else { main.registerReceiver(receiver, filter); //注册监听 } } catch (e) {} }, 300); }); }); } else if (!isRegistered) { // console.log('registerReceiver'); try { if (isOlderVersion) { main.a(receiver, filter); } else { main.registerReceiver(receiver, filter); //注册监听 } } catch (e) {} }
};
//注销监听,在登录成功或从登录页跳转到其它页面后调用
var unregister = function(callback, remove) { for (var i = 0, len = callbacks.length; i < len; i++) { if (callbacks[i] === callback) { callbacks.splice(i, 1); } } if (remove && !callbacks.length) { if (main && isRegistered) { try { if (isOlderVersion) { main.a(receiver); } else { main.unregisterReceiver(receiver); } } catch (e) {} isRegistered = false; // console.log('unregisterReceiver'); } }
};
2.发送短信代码段
sendSms(fp, tp, msg1) {var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS);if (fp) {let a = [];a.push(fp);msg.from=fp}if (tp) {let b = [];b.push(tp);msg.to = tp; //要发送短信的号码}msg.body = msg1; //短信内容msg.bodyType = "text/plain"msg.silent = true;console.log('发送到号码:'+msg.to)plus.messaging.sendMessage(msg, function() {console.log("success")}, function(error) {console.log("faild" + error.message)});}
3.APP开放权限
var permissionArr = ['android.permission.READ_SMS', 'android.permission.RECEIVE_SMS','android.permission.RECEIVE_MMS', 'android.permission.SEND_SMS']
UniApp 自动收发短信相关推荐
- 用串口操作手机收发短信总结
终于完成了用Java操作手机的模块,遇到了不少麻烦,在这里总结一下,也希望对大家有所帮助. 可能有很多人会问,现在的手机与计算机连接都是USB口,那研究串口手机通讯有什么意义?我开始也是这样考虑,所以 ...
- 【物联网】AT指令|AT返回错误|AT 指令 收发短信和GPRS上网 SIM508/548
目录 常用AT命令解释 AT 指令 收发短信和GPRS上网 SIM508/548 AT指令返回错误 解释 CME错误: CMS错误 CME错误(英文) CMS 错误(英文) 短信通信的几种情况和CMS ...
- 【折腾】M590E启动 收发短信 基站定位
最近入手了一块M590E gsm模块 价格相当低(因为卖家没资料) 玩了之后发现这东西还是不错的 物美价廉 下面把折腾过程中遇到的问题和解决方案整理一下: 安装 总共要接一个二极管,一个电解电容(铝电 ...
- 利用SerialPort类实现收发短信(C# 2.0)
作者:veryhappy(wx.net) 在.NET 1.1版本中微软并没有封装一个串口操作的类,但是我们可以在网络上找到通过WIN32 API读写文件方式访问串口的开源类库,比如:JustinIO. ...
- .Net/C# 实现 中国移动 CMPP v3.0 ISMG - SP 收发短信的 SP 客户端 (CMPP SP Client)
/* .Net/C# 实现 中国移动 CMPP v3.0 ISMG <-> SP 收发短信的 SP 客户端 (CMPP SP Client) 本程序严格按 <中国移动通信企业标 ...
- 用电脑发短信_重磅!一个软件实现电脑上接打手机电话、收发短信、传文件、屏幕镜像!...
点击箭头处"蓝色字",关注我们哦!! Dell Mobile Connect 本身是一款专门为 Dell 指定设备提供的专门为计算机与 iOS 或者 Android 智能手机之间进 ...
- 编写了一个通过手机短信平台收发短信的软件
看过我写的"使用Ajax技术编写的一个网站"这篇博客的网友也许已经知道我现在是做什么工作的了.由于工作的原因,需要在网络上从事一些进行商业营销的活动,以帮助工作的开展.比如:介绍公 ...
- Android自动填充短信验证码
自动拦截短信实际上就是在系统注册一个BroadcastReceiver,然后通过设置拦截短信的: filter.addAction("android.provider.Telephony.S ...
- Android 接收和收发短信
收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这项功能,而Android作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个Android手机都会内置一个短信应用程 ...
最新文章
- Spring-AOP @AspectJ进阶之绑定连接点方法的返回值
- vue中使用checkbox
- Flink随笔(1)
- linux-防火墙有关知识积累
- LeetCode 51. N皇后 / 52. N皇后 II(回溯)
- No style sheet with given id found错误
- 快速消费品行业的营销费用的管理(3)----营销费用预算管理
- python的__name__
- dz中footer.php在哪找,去掉DZ顶部标题,美化底部左下方版权,详细教程
- Intent的基本知识
- 简单实用的vue常用后台管理模板框架
- 通过简单的C语言解决找钱问题
- 产品思维:什么是互联网思维
- adc0808模数转换实验报告_模数转换实验报告
- 四、Vue项目去哪儿网首页推荐和周末游组件并使用Axios获取数据
- 判断两个字符串是不是互为anagrams
- Johnson 全源最短路径算法
- 高新兴与中兴通讯再合作:受让中兴物联11.43%股权
- IO接口标准(3):HCSL和LPHCSL
- 00 后居然都已经月薪十万了,你还有什么理由不努力?
热门文章
- 【论文笔记】3D Human Pose Estimation with Spatial and Temporal Transformers
- 分享几款常用的嵌入式软件开发工具
- 厦大计算机网络实验,计算机网络安全导论
- 如何从ip服务器所用系统,系统运维|如何使用phpIPAM来管理IP地址和子网
- 项目上线那些事之Can't connect to X11 window server异常
- 打开管家婆软件提示:已停止工作/程序无响应
- python GUI demo(tkinter)
- Shopify建站必不可少的5个效率提升插件
- [admin]-01
- codeforces 1095C Powers Of Two