uniapp各大平臺導航組件

最近有個需求要點擊導航然后跳出各家導航軟件

話不多出直接貼出代碼:這個可以作為組件引入

<template><view><view class="nav" :style="{color: customColor}" @click.stop="openMap">{{title}}</view><!-- 彈窗僅在 H5 / App 顯示 --><uni-popup ref="popupRef" type="bottom"><view class="popup-content"><view class="option" @click.stop="selectMap('amap')">高德地圖</view><view class="option" @click.stop="selectMap('baidu')">百度地圖</view><view class="option" @click.stop="selectMap('tencent')">騰訊地圖</view><view class="cancel" @click.stop="popupRef.close()">取消</view></view></uni-popup></view>
</template><script setup>import {ref,computed} from 'vue';import {onReady} from '@dcloudio/uni-app';const props = defineProps({lat: {type: [Number, String],required: true},lng: {type: [Number, String],required: true},name: {type: String,default: '目標位置'},myLat: {type: [Number, String],required: true},myLng: {type: [Number, String],required: true},title: {type: String,default: '導航'},customColor: {tyep: String,default: 'red'}});const popupRef = ref(null);// const isIOS = computed(() => uni.getSystemInfoSync().platform === 'ios');// 判斷平臺const isWeChatMiniProgram = uni.getSystemInfoSync().uniPlatform === 'mp-weixin';// 打開地圖彈窗或直接調用微信小程序地圖function openMap() {if (isWeChatMiniProgram) {console.log("微信小程序打開地圖", props.lat, props.lng, props.name);wx.openLocation({latitude: Number(props.lat),longitude: Number(props.lng),name: props.name,scale: 18,success: () => {},fail: (err) => {console.log("打開地圖失敗", err);}});} else {popupRef.value.open();}}// 選擇地圖跳轉(H5 / App)function selectMap(type) {const {lat,lng,name} = props;const encodedName = encodeURIComponent(name);let url = '';const platform = uni.getSystemInfoSync().platform;const isIOS = platform === 'ios';// 判斷是否為微信瀏覽器// const ua = window.navigator.userAgent.toLowerCase();// const isWeChatBrowser = ua.indexOf('micromessenger') !== -1;// if (isWeChatBrowser) {// 微信瀏覽器:使用網頁地圖跳轉// #ifdef H5 switch (type) {case 'amap':url =`https://uri.amap.com/navigation?to=${lng},${lat},${encodedName}&mode=car&policy=1&src=webapp&coordinate=gaode`;break;case 'baidu':url =`https://api.map.baidu.com/direction?origin=latlng:${props.myLat},${props.myLng}|name:我的位置&destination=latlng:${lat},${lng}|name:${encodedName}&mode=driving&region=全國&output=html&src=yourCompanyName|yourAppName`;break;case 'tencent':url =`https://apis.map.qq.com/uri/v1/routeplan?type=drive&to=${encodedName}&tocoord=${lat},${lng}&policy=0&referer=yourAppName`;break;}console.log("跳轉的URL:", url);popupRef.value.close();window.location.href = url;// #endif// } else {// #ifdef APP-PLUS//   //其它瀏覽器:喚醒APP - TOTO 由于H5無法判斷手機是否安裝對應APP,有對應APP則喚醒,無對應APP會被過濾掉let title = ''switch (type) {case 'amap':title = '高德地圖'url = isIOS ?`iosamap://path?sourceApplication=app&dlat=${lat}&dlon=${lng}&dname=${encodedName}&dev=0&t=0` :`amapuri://route/plan/?dlat=${lat}&dlon=${lng}&dname=${encodedName}&dev=0&t=0`;break;case 'baidu':title = '百度地圖'url =`baidumap://map/direction?origin=我的位置&destination=latlng:${lat},${lng}|name:${encodedName}&mode=driving&coord_type=gcj02`;break;case 'tencent':title = '騰訊地圖'url = `qqmap://map/routeplan?type=drive&tocoord=${lat},${lng}&to=${encodedName}&coord_type=1`;break;}plus.runtime.openURL(url, function(res) {console.log("打開地圖APP失敗:", res);uni.showToast({title: "導航失敗,請下載" + title,icon: 'none'})});// }// #endif}
</script><style scoped>.nav {text-align: center;color: red;font-size: 26upx;}.popup-content {background: #fff;padding: 20rpx;}.option {padding: 30rpx;text-align: center;border-bottom: 1px solid #eee;}.cancel {padding: 30rpx;text-align: center;color: #999;}
</style>

使用:

<MapNavigator :lat="" :lng="" :myLat="" :myLng="" :name="" />
// lat, lng 要去的經緯度   myLat myLng name 當前身處位置

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90503.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90503.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90503.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Access開發一鍵刪除Excel指定工作表

Hi&#xff0c;大家好&#xff01;又到了每周給大家更新的時間了&#xff0c;這周給大家講講excel的處理操作吧。在開始前&#xff0c;先給大家匯報一下我們框架的進度&#xff0c;最近兩周沒有直播&#xff0c;所以大家不太清楚目前的進度&#xff0c;框架目前就差權限了&…

無廣告終端安全產品推薦:打造純凈辦公環境的安全之選

在數字化辦公時代&#xff0c;終端安全防護是企業和個人不可忽視的重要環節。然而&#xff0c;許多傳統安全軟件往往伴隨著頻繁的廣告彈窗和推廣信息&#xff0c;不僅干擾正常工作&#xff0c;還可能成為潛在的安全隱患。本文將為您介紹幾款「無廣告、無捆綁」的終端產品&#…

使用UE5自帶節點InteriorCubemap制作假室內效果

Interior Mapping&#xff08;室內映射&#xff09;是一種用著色器方法模擬室內結構紋理的方式&#xff0c;避免了真實對室內場景建模造成的模型面數渲染開銷&#xff0c;在《蜘蛛俠》《城市天際線》等游戲中都采用了該技術。 UE自帶了節點InteriorCubemap&#xff08;Unity S…

基于單片機睡眠質量/睡眠枕頭設計

傳送門 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目速選一覽表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品題目功能速覽 概述 隨著現代社會生活節奏的加快&#xff0c;睡眠質量問題日益受到人們的關注。本研究設計了一種基于…

Ajax第一天

AJAX概念&#xff1a;AJAX 是瀏覽器與服務器進行數據通信的技術&#xff08;把數據變活&#xff09;語法&#xff1a;1.引入 axios.js&#xff1a;https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js2.使用 axios 函數? 傳入配置對象? 再用 .then 回調函數接收結果&#…

AI大模型各類概念掃盲

以下內容整理自AI&#xff0c;進行一個概念掃盲&#xff1a;Prompt&#xff08;提示詞&#xff09; Prompt是用戶提供給AI模型的指令或問題&#xff0c;用于引導模型生成特定輸出。良好的Prompt設計能顯著提升模型的任務理解能力和響應質量&#xff0c;例如通過結構化提示&…

Linux系統編程——網絡

一、TCP/UDP 1、osi模型 物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層&#xff08;下層為上層提供服務&#xff09; 2、TCP/IP模型&#xff08;TCP/IP協議棧&#xff09; 應用層&#xff1a; HTTP&#xff08;超文本傳輸協議&#xff09;、FTP&#xff08;文件…

taro+pinia+小程序存儲配置持久化

主要通過taro的getStorageSync,setStorageSync實現配置持久化 // https://pinia.esm.dev/introduction.html import { defineStore } from pinia; import { CreditCardDateUtils } from /untils/compute; import { getStorageSync, setStorageSync } from "tarojs/taro&qu…

抖音小游戲好做嗎?

從0到1&#xff0c;教你打造爆款抖音小游戲隨著移動互聯網的發展&#xff0c;抖音小游戲憑借便捷即玩、流量龐大等優勢&#xff0c;成為游戲開發者的熱門選擇。想知道如何開發出一款吸睛又好玩的抖音小游戲嗎&#xff1f;下面就為你詳細介紹開發流程。一、前期規劃明確游戲類型…

Spring Boot 3核心技術面試指南:從遷移升級到云原生實戰,9輪技術攻防(含架構解析)

面試官&#xff1a;cc程序員&#xff0c;聊聊Spring Boot 3的那些事兒&#xff1f; 場景背景 互聯網大廠云原生架構部面試官老王&#xff0c;與自稱"Spring Boot骨灰粉"的cc程序員展開技術對決。 面試過程 第一輪&#xff1a;遷移升級 面試官&#xff1a;Spring Boot…

技術演進中的開發沉思-42 MFC系列:Components 與 ActiveX Controls

點擊程序啟動時&#xff0c;是不是看過有加載的畫面。在VC開發時&#xff0c;可使用 VC 的 Component Gallery&#xff0c;找到 Splash screen 組件&#xff0c;當時覺得組件就是給程序員的暖手寶。一、Component GalleryComponent Gallery 在 VC 里的位置很特別 —— 它藏在 “…

抽象類、接口、枚舉

第八天&#xff08;堅持&#xff09;抽象類1.什么是抽象類&#xff0c;作用特點。抽象類是面向對象編程中一種特殊的類&#xff0c;它不能被實例化&#xff0c;主要用于作為其他類的基類&#xff08;父類&#xff09;。抽象類的主要作用是定義公共結構和行為規范&#xff0c;同…

在Ubuntu上使用QEMU仿真運行ARM匯編

ARM匯編一般無法在PC上直接運行&#xff0c;因為ARM和x86架構是不一樣的。但是很多時候用ARM開發板是很不方便的&#xff0c;所以能不能直接在PC上仿真運行ARM匯編來練習呢&#xff1f;當然可以&#xff0c;那就是&#xff1a;使用QEMU來仿真。這篇文章我們就來演示下如何在Ubu…

【趣味解讀】淘寶登錄的前后端交互機制:Cookie-Session 如何保障你的賬戶安全?

在現代Web應用中&#xff0c;前后端交互是核心功能之一&#xff0c;而用戶認證又是其中最關鍵的部分。本文將以淘寶登錄為例&#xff0c;詳細解析基于Cookie-Session的前后端交互流程&#xff0c;幫助開發者理解這一常見的安全認證機制。生動理解一下什么是cookie和seesion我們…

貪心算法(基礎算法)

1.引言 ok啊&#xff0c;拖更這么長時間也是沒有壓力&#xff08;doge&#xff09; 不說啥&#xff0c;直接進入正題。 2.概念 這個貪心算法呢&#xff0c;看名字就知道&#xff0c;不就是每個步驟都挑最好的嘛&#xff0c;有啥難的。 這么說的話......其實確實&#xff0c…

簡單的mcp 服務示例

參考&#xff1a;https://www.bilibili.com/video/BV1nyVDzaE1x 編寫自己的tools.py #### tools.py from pathlib import Path import osbase_dir Path("./test")def read_file(name: str) -> str:"""Return file content. If not exist, return …

DeepSeek-R1+豆包迭代一次完成中國象棋游戲

DeepSeeek- R1生成的棋盤符合中國象棋風&#xff0c;單獨豆包無法畫好象棋棋盤。提示詞&#xff1a;使用html實現中國象棋游戲&#xff0c;要求支持人機對弈。等等&#xff0c;你需要實現完整版本。代碼如下&#xff08;電腦走棋不對&#xff09;&#xff1a;<!DOCTYPE html…

阿里通義千問Qwen3深夜升級:架構革新+性能碾壓

&#xff08;以下借助 DeepSeek-R1 & Grok3 輔助整理&#xff09; 北京時間2025年7月22日凌晨&#xff0c;阿里云通義千問團隊發布了Qwen3旗艦模型的最新更新——Qwen3-235B-A22B-Instruct-2507-FP8。這一更新不僅在性能上實現了突破&#xff0c;還標志著開源大模型技術架…

pip關于緩存的用法

pip cache info查看 pip 緩存的大小&#xff0c;運行示例 Package index page cache location (pip v23.3): c:\users\xxx\appdata\local\pip\cache\http-v2 Package index page cache location (older pips): c:\users\xxx\appdata\local\pip\cache\http Package index page c…

嵌入式學習-(李宏毅)機器學習(2)-day29

十五個作業不同類型的Functions兩大類任務一個是Regression&#xff08;回歸&#xff09; 一個是 Classification&#xff08;分類&#xff09;一個是給出一個數值&#xff0c;一個是從類別中選擇一個還有一類任務 Structured Learning 機器要學會創造文件 機器學習預測頻道第…