皇家華 發表於 2020-1-10 15:29:00

uni-app实现app发送短信和读取短信

<div>
<div>
<p><strong>1、发送短信</strong></p>
<p>uni-app没有对应API的接口,如果想实现发送短信的功能可以借助HTML5+ API的方式,使用发送短信接口,直接跳转到手机发送短信页面,支持编辑短信。</p>
<p>&nbsp;</p>
<div>参考链接:</div>
www.html5plus.org/doc/zh_cn/m…
<p>&nbsp;</p>
<p>to:收件人信息 字符串数组类型,输入的地址收件人信息必须符合消息类型格式。</p>
<p>cc:抄送人信息 字符串数组类型,仅发送邮件时有效,输入的地址收件人信息必须符合消息类型格式。</p>
<p>bcc:暗送人信息 字符串数组类型,仅发送邮件时有效,输入的地址收件人信息必须符合消息类型格式。</p>
<p>from:发件人信息 仅在监听接收到的信息时有效。</p>
<p>subject:发送消息主题 字符串类型,仅发送邮件时有效。</p>
<p>body:发送消息内容 字符串类型,要发送的消息体内容,其格式必须与bodyType指定的一致。</p>
<p>bodyType:发送消息内容类型 要发送消息体内容的类型,可取值"text"表示文本内容,"html"表示为html页面,默认值为"text"。</p>
<p>silent:是否采用静默方式发送消息 布尔类型,可取值为true或false,true表示静默方式发送,不弹出界面;false表示非静默方式发送。默认采用非静默方式。</p>
<p>&nbsp;</p>
<div>&nbsp; &nbsp; 平台支持:</div>
<p>&nbsp;</p>
<p>&nbsp; &nbsp; iOS - 4.3+ (不支持):不支持静默方式发送消息,将忽略此属性值。</p>
<p>&nbsp; &nbsp; Android - 2.2+ (支持):支持静默方式发送短信(彩信和邮件不支持),发送成功后不会保留在系统的已发送信箱中,默认采用非静默方式发送消息。</p>
<p>&nbsp;</p>
<div>可添加附件</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>2、短信读取</strong></p>
<p>&nbsp;</p>
<div>以下代码为安卓方式获取,苹果不支持短信读取。</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<pre class="hljs javascript"><code class="hljs javascript copyable" lang="javascript"><span class="hljs-comment">//不同机型可能获取不全
<span class="hljs-comment">//查看权限是否已允许
<span class="hljs-keyword">var Context = plus.android.runtimeMainActivity();
<span class="hljs-keyword">var res = plus.android.invoke(<span class="hljs-string">"android.support.v4.app.ActivityCompat", <span class="hljs-string">"checkSelfPermission", Context,        <span class="hljs-string">"android.permission.READ_SMS");
<span class="hljs-keyword">var PERMISSIONS_STORAGE = <span class="hljs-keyword">new <span class="hljs-built_in">Array();
PERMISSIONS_STORAGE.push(<span class="hljs-string">"android.permission.READ_SMS");
<span class="hljs-comment">// res == -1 时为询问状态,询问时会走Show 和 Hidden
<span class="hljs-keyword">if (res != <span class="hljs-string">"0")
{       
    plus.android.invoke(<span class="hljs-string">"android.support.v4.app.ActivityCompat", <span class="hljs-string">"requestPermissions", Context, PERMISSIONS_STORAGE, <span class="hljs-number">1);
} <span class="hljs-keyword">else {       
    <span class="hljs-keyword">var main = plus.android.runtimeMainActivity();
    <span class="hljs-keyword">var Uri = plus.android.importClass(<span class="hljs-string">"android.net.Uri");
    <span class="hljs-keyword">var ContactsContract = plus.android.importClass(<span class="hljs-string">'android.provider.ContactsContract');
    <span class="hljs-keyword">var uri = Uri.parse(<span class="hljs-string">"content://sms/");
    <span class="hljs-keyword">var cr = main.getContentResolver();
    plus.android.importClass(cr);
    <span class="hljs-keyword">var cur = cr.query(uri, <span class="hljs-literal">null, <span class="hljs-literal">null, <span class="hljs-literal">null, <span class="hljs-literal">null);
    plus.android.importClass(cur);
    cur.moveToFirst();
    <span class="hljs-keyword">while (cur.moveToNext())
    {
      <span class="hljs-keyword">var index_Address = cur.getColumnIndex(<span class="hljs-string">"address");
        <span class="hljs-keyword">var address = cur.getString(index_Address);
        <span class="hljs-comment">//短信内容
        <span class="hljs-keyword">var index_Body = cur.getColumnIndex(<span class="hljs-string">"body");
        <span class="hljs-keyword">var body = cur.getString(index_Body);
        <span class="hljs-comment">//类型1接收 2发送
        <span class="hljs-keyword">var index_Type = cur.getColumnIndex(<span class="hljs-string">"type");
        <span class="hljs-keyword">var type = cur.getString(index_Type);
        <span class="hljs-built_in">console.log(address,body,type);       
    }
    cur.close();
}<span class="copy-code-btn">复制代码</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>&nbsp;</p>
<p><img class="lazyload inited loaded" alt="" data-src="https://user-gold-cdn.xitu.io/2019/10/30/16e1c15b820c6784?imageView2/0/w/1280/h/960/format/webp/ignore-error/1" data-width="1075" data-height="77"></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
</div><br><br>
来源:https://www.cnblogs.com/jucheng/p/12176346.html
頁: [1]
查看完整版本: uni-app实现app发送短信和读取短信