uni app怎么样(记录–uni-app在不同平台下拨打电话)
导读:这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助...
这里给大家分享我在网上总结出来的一些知识 ,希望对大家有所帮助
废话不多说 ,直接上代码说明 下面是通过 条件编译+ 各平台代码接口实现
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
}
注意事项
条件编译, 我们在使用 VConsole 的时候 ,如果不使用条件编译 ,在App端是会报错的 一定不能将import语句 写在if判断或者 三目运算中, 会报错 , 要理解ES6模块加载的机制 通过uni-app提供的接口 ,判断是App平台(IOS或者Andriod) ,怎么区分普通浏览器和微信浏览器还是依赖条件编译 上述的无论是uni-app提供的API实现还是 ,Andriod的 SDK 都是跳出 App拨打电话 ,挂断以后 ,还是会调回App界面 plus.device.dial 需要引入对应的SDK, 这个其实有是要通过 条件编译 ,判断当前所处的环境 ,上面的已经够用 ,其实和引入 vconsole 是一样的道理本文转载于:
https://juejin.cn/post/6856775720921513992
如果对您有所帮助 ,欢迎您点个关注 ,我会定时更新技术文档 ,大家一起讨论学习,一起进步 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织,在未征得本站同意时 ,禁止复制 、盗用、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!