当前位置: 首页 > news >正文

uniapp 调用手机上安装的app (高德地图 百度地图 Apple地图 谷歌地图)

uniapp 调用手机上安装的app (高德地图 百度地图 Apple地图 谷歌地图)

效果

效果图

思路

  1. 获取手机类型(安卓/iOS)
    let platform = uni.getSystemInfoSync().platform
    
  2. 判断手机有没有安装需要的应用
    plus.runtime.isApplicationExist({action: ""}))
    
  3. 打开应用 跳转过去
    plus.runtime.openURL()
    

核心代码

<view slot="value" class="u-slot-title" @click="goMap"><u--image :src="goMapImgSrc" width="18px" height="20px"></u--image>
</view>
data() {return {latitude: 23.763780,longitude: -45.831800,shopAddress: "XXXXXXXXXXX",}}goMap() {const _this = thisif (!this.latitude || !this.longitude || !this.shopAddress) return// 判断系统安装的地图应用有哪些, 并生成菜单按钮let _mapName = [{title: this.$t('my.order.Gaode Maps'),name: 'amap',androidName: 'com.autonavi.minimap',iosName: 'iosamap://'},{title: this.$t('my.order.Baidu Maps'),name: 'baidumap',androidName: 'com.baidu.BaiduMap',iosName: 'baidumap://'}{title: this.$t('my.order.Google Maps'),name: 'googlemap',androidName: 'com.google.android.apps.maps',iosName: 'comgooglemaps://'},{title: this.$t('my.order.Apple Maps'),name: 'applemap',androidName: 'com.apple.Maps',iosName: 'maps://'},]// 根据真机安装的地图软件 生成操作菜单let buttons = []let platform = uni.getSystemInfoSync().platformplatform === 'android' && _mapName.forEach(item => {if (plus.runtime.isApplicationExist({pname: item.androidName})) {buttons.push(item)}})platform === 'ios' && _mapName.forEach(item => {console.log(item)if (plus.runtime.isApplicationExist({action: item.iosName})) {buttons.push(item)}})if (buttons.length) {plus.nativeUI.actionSheet({ //选择菜单title: this.$t('my.order.select'),cancel: this.$t('pages.predetermine.predetermine.Cancel'),buttons: buttons}, function(e) {let _map = buttons[e.index - 1]_this.openURL(_map, platform)})} else {uni.showToast({title: '请安装地图软件',icon: 'none'})return}
},
// 打开第三方应用
openURL(map, platform) {console.log(map, platform);let _defaultUrl = {android: {"amap": `amapuri://route/plan/?sid=&did=&dlat=${this.latitude}&dlon=${this.longitude}&dname=${this.shopAddress}&dev=0&t=0`,'baidumap': `baidumap://map/direction?origin=${this.latitude},${this.longitude}&destination=name:${this.shopAddress}|latlng:${this.latitude},${this.longitude}&coord_type=wgs84&mode=driving&src=andr.baidu.openAPIdemo"`,'googlemap': `geo: + ${this.latitude} + ',' + ${this.longitude} + '?q=' + encodeURIComponent(${this.shopAddress})`},ios: {"amap": `iosamap://path?sourceApplication=fuxishan_uni_client&dlat=${this.latitude}&dlon=${this.longitude}&dname=${this.shopAddress}&dev=0&t=0`,'baidumap': `baidumap://map/direction?origin=${this.latitude},${this.longitude}&destination=name:${this.shopAddress}|latlng:${this.latitude},${this.longitude}&mode=driving&src=ios.baidu.openAPIdemo`,'googlemap': `comgooglemaps://?q=${this.shopAddress}`,'applemap': `maps://?q=${this.shopAddress}&sll=${this.latitude}+ ',' + ${this.longitude}&z=10&t=s`}}let newurl = encodeURI(_defaultUrl[platform][map.name]);plus.runtime.openURL(newurl, function(res) {uni.showModal({content: res.message})}, map.androidName ? map.androidName : '');
},

重点

要是需要打开谷歌地图的话, 需要在manifest.json中配置应用访问白名单
步骤
uniapp为了方便开发者调用一些常用的第三方应用,云端打包时默认已经一部分白名单但不包含谷歌地图,所以需要单独添加一下

相关文章:

uniapp 调用手机上安装的app (高德地图 百度地图 Apple地图 谷歌地图)

uniapp 调用手机上安装的app (高德地图 百度地图 Apple地图 谷歌地图) 效果 思路 获取手机类型(安卓/iOS)let platform uni.getSystemInfoSync().platform判断手机有没有安装需要的应用plus.runtime.isApplicationExist({action: ""}))打开应用 跳转过去plus.runt…...

如果供应商不能按时交货怎么办?

虽然说我们在采购的时候&#xff0c;我们会和供应商签订合同&#xff0c;合同上也会注明交期时间等一些必需的条件。 但是当供货商真的没有如期交货&#xff0c;或者交货拖延的时候&#xff0c;我们第一时间选择的是拿起法律武器来让对方承担违约责任吗? 显然&#xff0c;这选…...

【Linux应用】Linux系统的设备管理——Udev

1.udev概述 udev是 Linux2.6内核里的一个功能&#xff0c;它替代了原来的 devfs&#xff0c;成为当前 Linux 默认的设备管理工具&#xff0c;能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除等。 udev以守护进程的形式运行&am…...

超实用!给独立开发者福音的一站式应用开发工具!

各位开发者们&#xff0c;是否曾经为了搭建服务、开发接口API而头痛不已&#xff1f;是否曾因为需要集成各种第三方认证服务而感到心力交瘁&#xff1f;别担心&#xff0c;今天我要向大家介绍的是一款专为“懒人”开发者准备的神器——MemFire Cloud。这款一站式应用开发工具不…...

华为 HarmonyOS 中国市场份额一季度超越苹果 iOS

华为 HarmonyOS 中国市场份额一季度超越苹果 iOS 根据最新发布的数据&#xff0c;研究机构Counterpoint Research指出&#xff0c;在2024年第一季度&#xff0c;华为的操作系统HarmonyOS在中国市场超越了苹果的iOS&#xff0c;成为中国市场上的第二大操作系统。 ![在这里插入…...

【乐吾乐2D可视化组态编辑器】导航

支持点击图元&#xff0c;切换画面或跳转链接。 乐吾乐2D可视化组态编辑器地址&#xff1a;https://2d.le5le.com/ 切换画面 1. 添加事件 2. 设置事件行为 事件行为"发送消息"&#xff0c;消息名选择"导航"。 3. 配置消息参数 消息参数&#xff0c;…...

vue 之 vuex

目录 vuex 是什么 Vuex管理哪些状态呢&#xff1f; Vuex 页面刷新数据丢失怎么解决 1. 使用浏览器的本地存储 2. 使用 Vuex 持久化插件 3. 使用后端存储 注意事项 Vuex 为什么要分模块并且加命名空间 vuex 是什么 vuex 是专门为 vue 提供的全局状态管理系统&#xff0c…...

【代码随想录】【算法训练营】【第36天】[452]用最少数量的箭引爆气球 [435]无重叠区间 [763]划分字母区间

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 36&#xff0c;周三&#xff0c;最难坚持的一天~ 题目详情 [452] 用最少数量的箭引爆气球 题目描述 452 用最少数量的箭引爆气球 解题思路 前提&#xff1a;区间可能重叠 思路&#xff1a;…...

【ElasticSearch】windows server 2019安装ES8.9.1 + kibana8.9.1 + IK分词器

目录 准备工作 ES Kibana IK 安装 es es访问测试 将es安装为系统服务 Kibana 配置es 运行kibana 访问测试 IK 补充 准备工作 ES8.9.1 kibana8.9.1 IK的版本最好要对应上&#xff01;&#xff01;&#xff01; ES es8.9.1&#xff1a; https://artifa…...

前端面试题(一)答案版

面试形式&#xff1a;线下面试&#xff1a;时长60分钟 面试过程&#xff1a;填写个人信息->笔记题->HR根据前面2份资料提问->技术面试&#xff08;见如下面试题&#xff09; 面试官&#xff1a;项目负责人 公司背景&#xff1a;教育培训公司&#xff0c;项目给本公…...

qt c++ 子界面调用主窗口函数

方法&#xff1a;使用单例模式 将主窗口设计为单例模式。在子界面中通过单例访问主窗口实例&#xff0c;并调用公共函数。 // mainwindow.h #include <QMainWindow>class MainWindow : public QMainWindow {Q_OBJECTpublic:static MainWindow& instance() {static …...

Excel中多条件判断公式怎么写?

在Excel里&#xff0c;这种情况下的公式怎么写呢&#xff1f; 本题有两个判断条件&#xff0c;按照题设&#xff0c;用IF函数就可以了&#xff0c;这样查看公式时逻辑比较直观&#xff1a; IF(A2>80%, 4, IF(A2>30%, 8*(A2-30%),0)) 用IF函数写公式&#xff0c;特别是当…...

从申请到放款,外汇贷款软件的全流程测试解析

一、业务概述 外汇贷款是商业银行经营的一项重要资产业务。它是指银行运用外汇资金&#xff0c;向借款人提供短期或长期的外汇资金融通。这种贷款业务不仅能帮助银行获取经济效益&#xff0c;还是银行联系客户的主要途径。外汇贷款对于利用外资、引进先进技术设备&#xff0c;以…...

数据分析之数据预处理、分析建模、可视化

1、数据分析概述 数据分析&#xff1a;对大量有序或无序的数据进行信息的集中整合、运算提取、展示等操作&#xff0c;通过这些操作找出研究对象的内在规律。 目的&#xff1a;揭示事物运动、变化、发展的规律。 意义&#xff1a;提高系统运行效率、优化系统作业流程、预测未…...

计算机网络:1概述

概述 因特网 网络、互连网&#xff08;互联网&#xff09;与因特网的区别与关系 若干节点和链路互连形成网络&#xff0c;若干网络通过路由器互连形成互连网&#xff0c;世界上最大的互连网是互联网&#xff08;因特网Internet&#xff09;。 因特网发展的三个阶段 因特网…...

Mybatis工作流程和插件开发

在了解插件开发之前&#xff0c;我们先总体的来梳理一下Mybatis的大致执行流程&#xff1a; 1.new SqlSessionFactoryBuilder().build(inputStream):先根据配置文件&#xff08;包含了全局配置文件和映射配置文件&#xff09;初始化一个对象Configuration&#xff08;这里对象里…...

部署大模型LLM

在autodl上部署大模型 windows运行太麻烦&#xff0c;环境是最大问题。 选择云上服务器【西北B区 / 514机】 cpp (c c plus plus) 纯 C/C 实现&#xff0c;无需外部依赖。针对使用 ARM NEON、Accelerate 和 Metal 框架的 Apple 芯片进行了优化。支持适用于 x86 架构的 AVX、…...

【CT】LeetCode手撕—88. 合并两个有序数组

目录 题目1- 思路2- 实现⭐88. 合并两个有序数组——题解思路 2- ACM实现 题目 原题连接&#xff1a;88. 合并两个有序数组 1- 思路 模式识别 模式1&#xff1a;两个有序数组合并 ——> 双指针模式2&#xff1a;返回结果填充到 nums1[mn] ——> 需要开辟新的数组空间 …...

深入分析 Android BroadcastReceiver (二)

文章目录 深入分析 Android BroadcastReceiver (二)1. 深入理解 BroadcastReceiver 的高级使用和优化2. 有序广播&#xff08;Ordered Broadcasts&#xff09;2.1 实现有序广播 3. 粘性广播&#xff08;Sticky Broadcasts&#xff09;3.1 使用粘性广播 4. 本地广播&#xff08;…...

Linux常⽤服务器构建-ssh和scp

目录 1.ssh <1>ssh介绍 <2>安装ssh A.安装ssh服务器 B.远程登陆 <3>使⽤ssh连接服务器 2.scp 本地⽂件复制到远程&#xff1a; 本地⽬录复制到远程&#xff1a; 远程⽂件复制到本地&#xff1a; 远程⽬录复制到本地&#xff1a; 1.ssh <1>…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统&#xff0c;可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析&#xff1a;自动解析Markdown文档结构PPT模板分析&#xff1a;分析PPT模板的布局和风格智能布局决策&#xff1a;匹配内容与合适的PPT布局自动…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...