小程序可以在地图加上商家图标吗

小程序可以在地图加上商家图标吗,第1张

一、在开发微信小程序地图的过程中,有这样一个需求,用户发表祝福语,然后存入数据库,可以在地图上显示用户头像并且点击用户头像时显示祝福语。

二、自己在开发时遇到的问题:

1微信头像是网络,而地图的markers中的iconPath只能使用本地

2将网络缓存到本地,但是因为小程序的异步执行导致不能显示

三、解决办法:

1解决微信头像是网络的问题,可以使用wxdownloadFile({})方法来将头像缓存到本地,然后再将本地路径赋给iconPath即可,第一个不能使用网络的问题解决。

2异步请求导致本地缓存的不能在地图上显示,我的解决办法是,先通过request请求获取到祝福语后,用for循环赋值给markers,iconPath路径填写一个本地路径,同时调用一个方法,获取当前用户头像的本地缓存路径,获取成功后赋值给markers中每个对象的iconPath,所以一般来说,地图上的会有切换,首先显示的是本地的统一的,经过一段时间的请求后,一个个变为用户头像。

四、相关 *** 作代码

getBlessing: function(){

var that = this;

var getUserPic = function (pic_url,i) {

let cachePath;

if(pic_url==null || pic_url=='') return;

wxdownloadFile({

url: pic_url,

success: (pathInfo) => {

// pathInfopath 这是下载成的缓存链接,模拟器marker有时不支持>

把AngularJS开发的页面迁移到微信小程序

目录迁移

1、每个子模块页面换成Pages目录下的一个子目录,目录命名就是原子模块名。

2、原来的通用css、image、fonts等静态资源统一移到resource目录下,需要使用时,对于css样式文件,在对应子模块的wxss文件首部通过import命令引入;

替换规则

1、div需统一转换成View;

2、ng-show统一转换为wx:if;

3、ng-click统一转换为bindtap;

4、ng-repeat统一用wx:for替换;

5、ng-class中的样式选择性绑定可以直接把条件绑定语句嵌入class属性;

js代码

模块级代码迁移: 可将模块级作用域使用的通用逻辑搬到appjs中,通过app对象来引用;或者定义一个util模块,来做动态引入; 对于原生与h5交互时用到的自定义事件,需要根据具体场景做处理。

子模块级代码迁移:

可将Angular子模块代码直接迁移到小程序对应Page对象中,当然,对于Angular特定语法的$对象(例如$scope、$rootscope)的 *** 作,需要做全局替换,替换原则是:

1、$scope:与Page对象同生命周期内的$scope,可以直接替换成this;而对于非同一生命周期的(最常见的即是各种callback回调函数),需要将Page对象在方法外做引用保存(例如var self=this),然后在回调函数中使用。

2、$rootScope:推荐放入app对象中引用,或者自定义通用模块,然后动态引入;

3、数据模型:各页面中建立的数据模型,直接放入json文件中,如果涉及Angular特定语法的 *** 作,可参考上述两点的做法进行替换;

4、jsonp请求:将jsonp请求统一替换成wxrequest请求,只是原来的链式写法要换成参数型写法;

5、子模块间的页面跳转,$statego统一替换成wxnavigateTo或wxnavigateBack;

默认情况下,小程序官方提供的异步API都是基于回调函数实现的,这样就容易造成回调地狱的问题,代码的可读性、维护性差。API Promise化,指的是通过额外的配置,将官方提供的、基于回调函数的异步 API,升级改造为基于 Promise 的异步 API,从而提高代码的可读性、维护性,避免回调地狱的问题。实现API Promise化主要依赖于miniprogram-api-promise这个第三方的 npm 包。首先需要确认已经正确安装了node,使用的开发工具为微信官方的微信开发者工具。

在项目文件夹下对项目进行初始化,执行npm init -y 此时项目文件夹下会创建packagejson文件。执行npm i --save miniprogram-api-promise安装第三方包。此时会在项目根目录下创建node_modules文件夹。选择  工具-->构建npm  等待构建完成点击确定,此时会创建miniprogram_npm文件夹。

在入口文件appjs中按需引入。

import {promisifyAll} from "miniprogram-api-promise"

const wxp=wxp={}

promisifyAll(wx,wxp)

然后就可以通过wxp来调用promise化的api。举个例子在testjs文件中

async getTestData(){

const {data:res}=await wxprequest({methods:'GET',url: '>

以上就是关于小程序可以在地图加上商家图标吗全部的内容,包括:小程序可以在地图加上商家图标吗、微信小程序storage缓存同步方法和异步方法的区别、怎么把AngularJS开发的页面迁移到微信小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9311007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存