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)頁面時就會調(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>}
)
}
}