taro H5發(fā)短信

1、判斷環(huán)境,安卓和 iOS

const u = navigator.userAgent;
const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android終端
const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端

2、調(diào)用短信功能

    let smsContent = '';
    if (isAndroid) {
      smsContent = `sms:13838883888?body=您好`
    } else if(isiOS){
      smsContent = `sms:13838883888&body=您好`
    }

3、利用 web-view嵌入網(wǎng)頁, 再通過網(wǎng)頁調(diào)用短信功能

完整代碼

import Taro , { Component } from '@tarojs/taro';
import { View, WebView} from '@tarojs/components';
export default class SendMessage extends Component {
  constructor(props) {
    super(props);
    this.state = {
      isWebView: false,
      smsContent: '',
    }
  }
   // 發(fā)短信
  onSendAMsg() {
    let smsContent = ''
    const u = navigator.userAgent;
    const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android終端
    const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
    if (isAndroid) {
      smsContent = `sms:13838883888?body=您好`
    } else if(isiOS){
      smsContent = `sms:13838883888&body=您好`
    }
    this.setState({ isWebView: true, smsContent })
    // isWebView作為 web-view 的狀態(tài)控制,如果沒有,進(jìn)頁面時(shí)就會調(diào)用短信功能
    // 頁面會保存 web-view 的打開狀態(tài),所以要把 web-view 的狀態(tài)關(guān)閉
    const timer = setTimeout(() => {
      this.setState({ isWebView: false });
      clearTimeout(timer)
    }, 1000)
  }
 render() {
    const { isWebView, smsContent } = this.state
    return (
      <View className='phone_btn sms' onClick={this.onSendAMsg.bind(this)}>發(fā)送短信</View>
      {isWebView && <WebView src={smsContent}></WebView>}
    )
 }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容