uni-app中使用native.js调用android API实现双卡发送短信
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台官网地址
因为业务逻辑需要调用短信功能,但是uni-app 中未提供相关接口。查看uni-app的框架图可以看出
是可以使用native.js去调用的android API的
native.js 介绍及文档:https://ask.dcloud.net.cn/article/88
于是乎,在百度上搜索了 android 发送短信的 代码 将其改写成native.js调用
原android代码
public void sendMessages(String sPhoneNum, String sMesage, int id){
SubscriptionInfo sInfo = null; final SubscriptionManager sManager = (SubscriptionManager)this .getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
List<SubscriptionInfo> lists = sManager.getActiveSubscriptionInfoList();
if(lists == null || lists.isEmpty()){ return;
}
sInfo = lists.get(id);
if(sInfo != null){
int subId = sInfo.getSubscriptionId();
SmsManager managers = SmsManager.getSmsManagerForSubscriptionId(subId);
ArrayList<String> arrayListlist = managers.divideMessage(sMesage);
managers.sendMultipartTextMessage(sPhoneNum,null,arrayLis tlist,null,null); }
}
native.js代码:
//通过native.js 调用android API 发送短信
sendMessage1() {if (plus.os.name == "Android") { //获取当前MainActivityvar main = plus.android.runtimeMainActivity();//获取SystemServicevar sManager = main.getSystemService("telephony_subscription_service");console.log(sManager);//获取所有卡列表var subscriptionInfoList = plus.android.invoke(sManager,"getActiveSubscriptionInfoList");//获取卡信息 var sInfo = plus.android.invoke(subscriptionInfoList,"get",0);//获取卡idvar id = plus.android.invoke(sInfo,"getSubscriptionId");console.log(id);//获取卡id获取SMSManagers对象var managers = plus.android.invoke("android.telephony.SmsManager","getSmsManagerForSubscriptionId",id);var eMessage = "哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈--------------";//分割短信内容 短信规定不能大于70字,大于70会被分割,分开发送var list = plus.android.invoke(managers,"divideMessage",eMessage);//发送短信var returns = plus.android.invoke(managers,"sendMultipartTextMessage","18829221189",null,list,null,null);
}
另附一种解决方案 使用H5+掉起系统的短信发送界面
// 通过 h5+ 掉起 系统短信发送界面sendMessage2() {//创建一条信息 短信/彩信/邮件var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS); msg.to = ['18829221189']; //发给谁msg.body = '艾欧尼亚昂扬不灭';// msg.silent = true; 静默发送(后台发送) 不好使//发送信息plus.messaging.sendMessage(msg,function (){uni.showModal({content: 'successs',showCancel: false});},function(){uni.showModal({content: 'error',showCancel: false});});
uni-app中使用native.js调用android API实现双卡发送短信相关推荐
- Android软件开发之发送短信与系统短信库解析(三十)
Android软件开发之发送短信与系统短信库解析 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/arc ...
- android 拨打电话与发送短信
通过调用android系统提供的电话与短信功能,可以简单的实现发送短信,拨打电话,但是必须在AndroidManifest.xml里面配置相应权限,定位到 1 <application 2 3 ...
- 【Android】Android6.0发送短信Demo
整理一下使用SmsManager类发送短信的方法. https://developer.android.com/reference/android/telephony/SmsManager.html ...
- zabbix调用sendsms.py脚本,发送短信
zabbix调用python发送短信的操作方法和配置邮件报警类似.过程参考zabbix配置部分. 下面是python的脚本: [root@zabbix01 alertscripts]# cat sen ...
- html发送短信倒计时,js实现5秒倒计时重新发送短信功能
本文实例讲述了js实现倒计时重新发送短信验证码功能的方法.分享给大家供大家参考,具体如下: js-手机发送短信倒计时 button{ width: 100px; height: 30px; borde ...
- 如何调用外部webservice 接口来发送短信
WebService接口 当前版本V1.2 Web Service地址: GB2312网关 http://gateway.woxp.cn:6630/gb2312/ws_api/WebSMS.asmx ...
- Android 双卡发送短信
场景: 手机中有两张卡时,如何选择由哪张卡发送短信 实现代码: private void sendMessage() {String SEND = "sms_send";Pendi ...
- Android学习--写一个发送短信的apk,注意布局文件的处理过程!!!
刚开始写Android程序如图发现使用了findViewById方法之后输出的话居然是null(空指针错误),也就是说这个方法没有成功.网上说这样写是在activity_main .xml去找这个ID ...
- android开发发送短信,Android开发入门之发送短信
第一步:新建一个Android工程命名为03.Sms目录结构如下图: 第二步:修改activity_main.xml布局文件代码如下: xmlns:tools="http://schemas ...
最新文章
- php将数组最后一个单元弹出,php array_pop()数组函数将数组最后一个单元弹出(出栈)...
- Nhibernate 多对多级联删除
- 轻松看懂java设计模式简单工厂模式
- 新站如何快速的度过考察期并避免进入沙盒期
- android dialog 隐藏状态栏_Flutter-最近搞了个项目-启动页Splash,Navigator.pop无法关闭Dialog...
- 17.1.1.3 Creating a User for Replication 创建一个用于用于复制:
- 无法启用iPhone、iPhone 启用错误?用Tenorshare ReiBoot 及 4MeKey 解决
- 揭秘硅谷传奇:惠普的创业故事
- 虚拟机与本地电脑时间同步命令
- 无线路由如何快速设置WDS扩展网络
- 中柏平板bios对照表_中柏平板设置u盘启动图文教程
- STM32与RC522简单公交卡系统的设计
- Bilateral Filter、Cross/Joint Bilateral Filter
- 王道考研计算机网络第五章——传输层
- 有约束的优化问题求解——Karush-Kuhn-Tucker (KKT)条件
- AGC049 A - Erasing Vertices(概率期望)
- 树莓派在下载Wiringpi时遇到的问题1.软件包 wiringpi 没有可安装候选2.失败:域名解析暂时失败。 wget: 无法解析主机地址 “project-downloads.drogon.ne
- android studio微博对话框,小白的Android studio新浪微博一键分享记录
- 从阿里旺旺看淘宝和ebay的差异,看中国人的信任危机
- 汇川AM402和串口调试助手自由协议通信