18 changed files with 1859 additions and 32 deletions
File diff suppressed because it is too large
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 96 KiB |
@ -0,0 +1,22 @@ |
|||||
|
<script> |
||||
|
export default { |
||||
|
onLaunch: function() { |
||||
|
console.log('App Launch') |
||||
|
}, |
||||
|
onShow: function() { |
||||
|
console.log('App Show') |
||||
|
}, |
||||
|
onHide: function() { |
||||
|
console.log('App Hide') |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss"> |
||||
|
/* 注意要写在第一行,同时给style标签加入lang="scss"属性 */ |
||||
|
// @import "uview-ui/index.scss"; |
||||
|
|
||||
|
.cell-hover-class { |
||||
|
background-color: rgb(0, 170, 255); |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,14 @@ |
|||||
|
学习uni插件发布 |
||||
|
###1、安装 vue-baidu-map |
||||
|
#### cnpm install vue-baidu-map --save |
||||
|
|
||||
|
###2、main.js引入 |
||||
|
|
||||
|
####import BaiduMap from 'vue-baidu-map' |
||||
|
####import {BmlMarkerClusterer} from 'vue-baidu-map' |
||||
|
####Vue.component('bml-marker-cluster', BmlMarkerClusterer) |
||||
|
|
||||
|
|
||||
|
####Vue.use(BaiduMap, { |
||||
|
#### ak: 'your ak' |
||||
|
####}) |
@ -0,0 +1,23 @@ |
|||||
|
import Vue from 'vue' |
||||
|
import App from './App' |
||||
|
// import uView from "uview-ui";
|
||||
|
|
||||
|
import BaiduMap from 'vue-baidu-map' |
||||
|
import {BmlMarkerClusterer} from 'vue-baidu-map' |
||||
|
|
||||
|
Vue.component('bml-marker-cluster', BmlMarkerClusterer) |
||||
|
Vue.config.productionTip = false |
||||
|
|
||||
|
|
||||
|
App.mpType = 'app' |
||||
|
|
||||
|
// Vue.use(uView);
|
||||
|
Vue.use(BaiduMap, { |
||||
|
// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */
|
||||
|
ak: 'xxxxxxxxxxxxxxxxxxxxxxxx' |
||||
|
}) |
||||
|
|
||||
|
const app = new Vue({ |
||||
|
...App |
||||
|
}) |
||||
|
app.$mount() |
@ -0,0 +1,85 @@ |
|||||
|
{ |
||||
|
"name" : "百度地图,高德地图,谷歌地图实现导航", |
||||
|
"appid" : "", |
||||
|
"description" : "", |
||||
|
"versionName" : "1.0.0", |
||||
|
"versionCode" : "100", |
||||
|
"transformPx" : false, |
||||
|
/* 5+App特有相关 */ |
||||
|
"app-plus" : { |
||||
|
"usingComponents" : true, |
||||
|
"nvueCompiler" : "uni-app", |
||||
|
"compilerVersion" : 3, |
||||
|
"splashscreen" : { |
||||
|
"alwaysShowBeforeRender" : true, |
||||
|
"waiting" : true, |
||||
|
"autoclose" : true, |
||||
|
"delay" : 0 |
||||
|
}, |
||||
|
/* 模块配置 */ |
||||
|
"modules" : {}, |
||||
|
/* 应用发布信息 */ |
||||
|
"distribute" : { |
||||
|
/* android打包配置 */ |
||||
|
"android" : { |
||||
|
"permissions" : [ |
||||
|
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.VIBRATE\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", |
||||
|
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.CAMERA\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>", |
||||
|
"<uses-feature android:name=\"android.hardware.camera\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>", |
||||
|
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" |
||||
|
] |
||||
|
}, |
||||
|
/* ios打包配置 */ |
||||
|
"ios" : {}, |
||||
|
/* SDK配置 */ |
||||
|
"sdkConfigs" : {} |
||||
|
} |
||||
|
}, |
||||
|
/* 快应用特有相关 */ |
||||
|
"quickapp" : {}, |
||||
|
/* 小程序特有相关 */ |
||||
|
"mp-weixin" : { |
||||
|
"appid" : "", |
||||
|
"setting" : { |
||||
|
"urlCheck" : false |
||||
|
}, |
||||
|
"usingComponents" : true |
||||
|
}, |
||||
|
"mp-alipay" : { |
||||
|
"usingComponents" : true |
||||
|
}, |
||||
|
"mp-baidu" : { |
||||
|
"usingComponents" : true |
||||
|
}, |
||||
|
"mp-toutiao" : { |
||||
|
"usingComponents" : true |
||||
|
}, |
||||
|
"uniStatistics" : { |
||||
|
"enable" : false |
||||
|
}, |
||||
|
"h5" : { |
||||
|
"router" : { |
||||
|
"mode" : "history", |
||||
|
"base" : "/map" |
||||
|
} |
||||
|
}, |
||||
|
"vueVersion" : "2" |
||||
|
} |
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"dependencies": { |
||||
|
"vue-baidu-map": "^0.21.22" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"node-sass": "^5.0.0", |
||||
|
"sass-loader": "^10.1.0" |
||||
|
} |
||||
|
} |
@ -0,0 +1,21 @@ |
|||||
|
{ |
||||
|
// "easycom": { |
||||
|
// "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue" |
||||
|
// }, |
||||
|
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages |
||||
|
|
||||
|
{ |
||||
|
"path": "pages/index/map", |
||||
|
"style": { |
||||
|
"navigationBarTitleText": "uni-app" |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
"globalStyle": { |
||||
|
"navigationBarTextStyle": "black", |
||||
|
"navigationBarTitleText": "uni-app", |
||||
|
"navigationBarBackgroundColor": "#F8F8F8", |
||||
|
"backgroundColor": "#F8F8F8" |
||||
|
} |
||||
|
|
||||
|
} |
@ -0,0 +1,171 @@ |
|||||
|
<template> |
||||
|
<view><button @click="button_bt">点击事件</button></view> |
||||
|
</template> |
||||
|
<script> |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
|
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
|
||||
|
}; |
||||
|
}, |
||||
|
methods: { |
||||
|
button_bt(){ |
||||
|
this.toMapAPP("经度","纬度","地址") |
||||
|
}, |
||||
|
toMapAPP(lat,lon,cityName) { |
||||
|
var url = ''; |
||||
|
if (plus.os.name == 'Android') { |
||||
|
|
||||
|
var hasBaiduMap = plus.runtime.isApplicationExist({ |
||||
|
|
||||
|
pname: 'com.baidu.BaiduMap', |
||||
|
|
||||
|
action: 'baidumap://' |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
var hasAmap = plus.runtime.isApplicationExist({ |
||||
|
|
||||
|
pname: 'com.autonavi.minimap', |
||||
|
|
||||
|
action: 'androidamap://' |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
var urlBaiduMap = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=婚梯'; |
||||
|
|
||||
|
var urlAmap = 'androidamap://viewMap?sourceApplication=婚梯&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon + |
||||
|
|
||||
|
'&dev=0'; |
||||
|
|
||||
|
// if (hasAmap && hasBaiduMap) { |
||||
|
|
||||
|
plus.nativeUI.actionSheet({ |
||||
|
|
||||
|
title: '选择地图应用', |
||||
|
|
||||
|
cancel: '取消', |
||||
|
|
||||
|
buttons: [{ |
||||
|
|
||||
|
title: '百度地图' |
||||
|
|
||||
|
}, { |
||||
|
|
||||
|
title: '高德地图' |
||||
|
|
||||
|
} ,{ |
||||
|
|
||||
|
title: '谷歌地图' |
||||
|
|
||||
|
}] |
||||
|
|
||||
|
}, function(e) { |
||||
|
|
||||
|
switch (e.index) { |
||||
|
|
||||
|
case 1: |
||||
|
|
||||
|
plus.runtime.openURL(urlBaiduMap); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 2: |
||||
|
|
||||
|
plus.runtime.openURL(urlAmap); |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 3: |
||||
|
|
||||
|
url = 'geo:' + lat + ',' + lon + '?q='+cityName; //如果是国外应用,应该优先使用这个,会启动google地图。这个接口不能统一坐标系,进入百度地图时会有偏差 |
||||
|
|
||||
|
plus.runtime.openURL(url); |
||||
|
break; |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
} else { |
||||
|
|
||||
|
|
||||
|
plus.nativeUI.actionSheet({ |
||||
|
|
||||
|
title: '选择地图应用', |
||||
|
|
||||
|
cancel: '取消', |
||||
|
|
||||
|
buttons: [{ |
||||
|
|
||||
|
title: 'Apple地图' |
||||
|
|
||||
|
}, { |
||||
|
|
||||
|
title: '高德地图' |
||||
|
|
||||
|
} ,{ |
||||
|
|
||||
|
title: '谷歌地图' |
||||
|
|
||||
|
}] |
||||
|
|
||||
|
}, function(e) { |
||||
|
|
||||
|
console.log('e.index: ' + e.index); |
||||
|
|
||||
|
switch (e.index) { |
||||
|
|
||||
|
case 1: |
||||
|
|
||||
|
url = 'http://maps.apple.com/?q=%e6%95%b0%e5%ad%97%e5%a4%a9%e5%a0%82&ll=' + lat + ',' + lon + |
||||
|
|
||||
|
'&spn=0.008766,0.019441'; |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 2: |
||||
|
|
||||
|
url = 'baidumap://map/marker?location=' + lat + ',' + lon + '&title=' + cityName + '&src=婚梯'; |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
case 3: |
||||
|
|
||||
|
url = 'iosamap://viewMap?sourceApplication=婚梯&poiname=' + cityName + '&lat=' + lat + '&lon=' + lon + '&dev=0'; |
||||
|
|
||||
|
break; |
||||
|
case 4: |
||||
|
|
||||
|
url = 'geo:' + lat + ',' + lon + '?q='+cityName; //如果是国外应用,应该优先使用这个,会启动google地图。这个接口不能统一坐标系,进入百度地图时会有偏差 |
||||
|
|
||||
|
plus.runtime.openURL(url); |
||||
|
break; |
||||
|
default: |
||||
|
|
||||
|
break; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
if (url != '') { |
||||
|
|
||||
|
plus.runtime.openURL(url, function(e) { |
||||
|
|
||||
|
plus.nativeUI.alert('本机未安装指定的地图应用'); |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
} |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
<style></style> |
@ -0,0 +1,76 @@ |
|||||
|
/** |
||||
|
* 这里是uni-app内置的常用样式变量 |
||||
|
* |
||||
|
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 |
||||
|
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App |
||||
|
* |
||||
|
*/ |
||||
|
|
||||
|
/** |
||||
|
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 |
||||
|
* |
||||
|
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 |
||||
|
*/ |
||||
|
|
||||
|
/* 颜色变量 */ |
||||
|
/* 行为相关颜色 */ |
||||
|
// @import 'uview-ui/theme.scss'; |
||||
|
$uni-color-primary: #007aff; |
||||
|
$uni-color-success: #4cd964; |
||||
|
$uni-color-warning: #f0ad4e; |
||||
|
$uni-color-error: #dd524d; |
||||
|
|
||||
|
/* 文字基本颜色 */ |
||||
|
$uni-text-color:#333;//基本色 |
||||
|
$uni-text-color-inverse:#fff;//反色 |
||||
|
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 |
||||
|
$uni-text-color-placeholder: #808080; |
||||
|
$uni-text-color-disable:#c0c0c0; |
||||
|
|
||||
|
/* 背景颜色 */ |
||||
|
$uni-bg-color:#ffffff; |
||||
|
$uni-bg-color-grey:#f8f8f8; |
||||
|
$uni-bg-color-hover:#f1f1f1;//点击状态颜色 |
||||
|
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 |
||||
|
|
||||
|
/* 边框颜色 */ |
||||
|
$uni-border-color:#c8c7cc; |
||||
|
|
||||
|
/* 尺寸变量 */ |
||||
|
|
||||
|
/* 文字尺寸 */ |
||||
|
$uni-font-size-sm:24rpx; |
||||
|
$uni-font-size-base:28rpx; |
||||
|
$uni-font-size-lg:32rpx; |
||||
|
|
||||
|
/* 图片尺寸 */ |
||||
|
$uni-img-size-sm:40rpx; |
||||
|
$uni-img-size-base:52rpx; |
||||
|
$uni-img-size-lg:80rpx; |
||||
|
|
||||
|
/* Border Radius */ |
||||
|
$uni-border-radius-sm: 4rpx; |
||||
|
$uni-border-radius-base: 6rpx; |
||||
|
$uni-border-radius-lg: 12rpx; |
||||
|
$uni-border-radius-circle: 50%; |
||||
|
|
||||
|
/* 水平间距 */ |
||||
|
$uni-spacing-row-sm: 10px; |
||||
|
$uni-spacing-row-base: 20rpx; |
||||
|
$uni-spacing-row-lg: 30rpx; |
||||
|
|
||||
|
/* 垂直间距 */ |
||||
|
$uni-spacing-col-sm: 8rpx; |
||||
|
$uni-spacing-col-base: 16rpx; |
||||
|
$uni-spacing-col-lg: 24rpx; |
||||
|
|
||||
|
/* 透明度 */ |
||||
|
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 |
||||
|
|
||||
|
/* 文章场景相关 */ |
||||
|
$uni-color-title: #2C405A; // 文章标题颜色 |
||||
|
$uni-font-size-title:40rpx; |
||||
|
$uni-color-subtitle: #555555; // 二级标题颜色 |
||||
|
$uni-font-size-subtitle:36rpx; |
||||
|
$uni-color-paragraph: #3F536E; // 文章段落颜色 |
||||
|
$uni-font-size-paragraph:30rpx; |
Loading…
Reference in new issue