在App中撥打電話是一個比較常見的應用場景,但是我們通過搜尋文章,發現,大部分的博文都是uni-app官網的copy, copy
uni-app 提供的打電話,只是幫你把撥號介面撥出來,並不能直接撥打, 安卓原生API可以,IOS因為許可權問題,不行
那麼,我們可以做個判斷,如果是安卓,點選了 直接就把電話撥出來,其他的平臺,使用uni-app預設的喚起撥號介面
<a href="tel: 10086">10086</a>複製程式碼
廢話不多說,直接上程式碼說明 下面是通過 條件編譯+ 各平臺程式碼介面實現
testDevice.vue
<view> <!-- #ifdef APP-PLUS --> <button @tap="telphone">撥打電話</button> <!-- #endif --> <!-- #ifdef H5 --> <a href="tel:10086">10086-h5平臺下</a> <!-- #endif --> </view> <script> // 對不同的平臺有一點區分 import telphone from './telphone.js' export default { methods: { telphone() { // 通過傳遞電話引數,呼叫不同平臺撥打電話的功能 telphone("10086") } } } </script>複製程式碼
我們這裡 不關注介面問題,避免分散各位看官老爺的關注點,重點看js中的實現
請注意,一定使用 條件編譯,可以支援不同的場景, 上面的是 App端(IOS和Andriod), 下面是普通的h5
telphone.js
//#ifdef H5 import VConsole from 'vconsole' new VConsole() //#endif export default (phone) => { // 獲取裝置平臺 let platform = uni.getSystemInfoSync().platform //#ifdef H5 // h5環境--瀏覽器 let ua = navigator.userAgent.toLowerCase() // 就要判斷 是微信內建瀏覽器還是使用者的普通瀏覽器 if (ua.match(/MicroMessenger/i) == "micromessenger") { // 微信瀏覽器 console.log('微信瀏覽器') } else { // 普通瀏覽器 } //#endif //#ifdef APP-PLUS // app環境 switch (platform) { case 'android': // 匯入Activity、Intent類 var Intent = plus.android.importClass("android.content.Intent"); var Uri = plus.android.importClass("android.net.Uri"); // 獲取主Activity物件的範例 var main = plus.android.runtimeMainActivity(); // 建立Intent var uri = Uri.parse("tel:" + phone); // 這裡可修改電話號碼 var call = new Intent("android.intent.action.CALL", uri); // 呼叫startActivity方法撥打電話 main.startActivity(call); break; case 'ios': // 使用uni-app提供的藉口 uni.makePhoneCall({ phoneNumber: phone }) break; default: // 偵錯程式工具 } //#endif }複製程式碼
plus.device.dial 需要引入對應的SDK, 這個其實有是要通過 條件編譯,判斷當前所處的環境,上面的已經夠用,其實和引入 vconsole 是一樣的道理
瞭解其他文章敬請存取欄目!
以上就是uni-app在不同平臺下撥打電話的範例的詳細內容,更多請關注TW511.COM其它相關文章!