다양한 플랫폼에서 호출을 수행하는 uni-app의 예
Scenario
앱에서 전화를 거는 것은 비교적 일반적인 응용 시나리오이지만, 기사를 검색해 보니 대부분의 블로그 게시물이 uni-app 공식 웹사이트, copy
uni-app에서 제공하는 복사본이라는 것을 알게 되었습니다. 전화는 전화걸기 인터페이스만 불러올 수 있으며 직접 통화는 할 수 없습니다. Android 기본 API를 사용할 수 있지만 IOS는 권한 문제로 인해 사용할 수 없습니다
그래서 Android인지 판단할 수 있습니다. 다른 플랫폼의 경우 uni-app
구현 메커니즘
- HTML5+에서 제공하는 인터페이스 plus.device.dial의 기본 전화 접속 인터페이스를 사용하세요. package
- uni-app의 외부 인터페이스 uni.makePhoneCall
- IOS와 Andriod는 네이티브 인터페이스를 제공합니다. - 네이티브 개발에 익숙하지 않으면 어려움을 겪을 것입니다
- 모바일 브라우저의 H5 페이지에서
<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 구현에 중점을 둡니다
조건을 사용해야 한다는 점에 유의하세요. 위는 앱 측(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 }复制代码
Notes
- 조건부 컴파일입니다. 컴파일은 앱 측에서 오류를 보고합니다
- if 판단이나 삼항 연산에 import 문을 작성하지 마세요. 그렇지 않으면 오류가 보고됩니다. ES6 모듈 로딩 메커니즘을 이해해야 합니다.
- uni에서 제공하는 인터페이스를 사용하세요. -app 앱 플랫폼(IOS인지 Andriod)인지 판단하는 방법, 일반 브라우저와 WeChat 브라우저를 구별하는 방법 또는 조건부 컴파일에 의존하는 방법
- 위에서 uni-app에서 제공하는 API 구현인지 Andriod의 SDK인지는 다음과 같습니다. 전화를 끊은 후에도 앱 인터페이스
-
plus.device.dial로 다시 호출됩니다. 이를 위해서는 실제로 해당 SDK를 도입해야 합니다. 사실은 vconsole을 소개하는 것과 똑같습니다
다른 글은 uni-app 칼럼을 참고해주세요!
위 내용은 다양한 플랫폼에서 호출을 수행하는 uni-app의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











VSCode에서 uni-app을 개발하는 방법은 무엇입니까? 다음 기사에서는 VSCode에서 uni-app을 개발하는 방법에 대한 튜토리얼을 공유할 것입니다. 이것은 아마도 가장 훌륭하고 자세한 튜토리얼일 것입니다. 와서 살펴보세요!

uniapp을 사용하여 간단한 지도 탐색을 개발하는 방법은 무엇입니까? 이 기사는 간단한 지도를 만드는 데 도움이 되기를 바랍니다.

uniapp을 사용하여 스네이크 게임을 개발하는 방법은 무엇입니까? 다음 기사는 uniapp에서 Snake 게임을 구현하는 방법을 단계별로 설명합니다. 도움이 되기를 바랍니다.

uni-app 인터페이스, 전역 메서드 캡슐화 1. 루트 디렉터리에 api 파일을 생성하고 api 폴더에 api.js, baseUrl.js 및 http.js 파일을 생성합니다. 2.baseUrl.js 파일 코드 importdefault"https://XXXX .test03.qcw800.com/api/"3.http.js 파일 코드 내보내기 기능https(opts,data){lethttpDefaultOpts={url:opts.url,data:data,method:opts.method

이번 글에서는 다중 선택박스의 전체 선택 기능 구현과 관련된 이슈를 주로 정리한 uniapp 관련 지식을 소개합니다. 전체 선택 기능을 구현할 수 없는 이유는 체크박스의 체크된 필드가 동적으로 수정하면 인터페이스의 상태가 실시간으로 변경될 수 있지만 checkbox-group의 변경 이벤트는 트리거될 수 없습니다. 모두에게 도움이 되기를 바랍니다.

이 글은 유니앱 캘린더 플러그인 개발 과정을 단계별로 안내하고, 다음 캘린더 플러그인 개발부터 출시까지 어떻게 진행되는지 소개하는 글이 여러분께 도움이 되길 바랍니다!

uniapp은 스크롤 보기 드롭다운 로딩을 어떻게 구현합니까? 다음 기사에서는 uniapp WeChat 애플릿 스크롤 보기의 드롭다운 로딩에 대해 설명합니다. 모든 사람에게 도움이 되기를 바랍니다.

이 기사는 uniapp에 대한 관련 지식을 제공합니다. 주로 uniapp을 사용하여 전화를 걸고 녹음을 동기화하는 방법을 소개합니다. 관심 있는 친구들이 꼭 읽어보시기 바랍니다.
