找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

SF问答精选《一》:如何引入第三方插件,调用自定义方法

作者:模板之家 2018-4-11 10:00 10403人关注

除了我们网站,还有很多地方,聚集着小程序的开发者,在上面也有一些问题和答案,会给大家一些参考;本期整理的是sf:segmentfault.com回答部分会标注个人id,此处的个人id指的是sf内

除了我们网站,还有很多地方,聚集着小程序的开发者,在上面也有一些问题和答案,会给大家一些参考;本期整理的是sf:segmentfault.com回答部分会标注个人id,此处的个人id指的是sf内的个人id;假如是我回答的,则没有标注;

以下均属于个人回答,所以仅供参考,如有不正确的地方,请指出,以便我修正;

如果你对其中的问题也有自己的答案,欢迎分享在底下,以便观看者查看参考;

问题:
微信小程序工具登入的问题
从微信小程序工具页面,下载微信小程序安装后,运行微信小程序工具。可是扫码后就是登入不了!提示:
1.png
答:
一般这个问题是由开启代理或翻墙等引发的,取消即可;或在微信开发者工具的代理内选择直接连接;

问题:微信小程序下拉加载更多数据如何实现

答:@kstd123回答

Page({

onPullDownRefresh: ()=>{wx.stopPullDownRefresh();

}

})

问题:
微信小程序 懒加载的问题
在微信小程序中,由于无法使用dom,该怎么处理图片的懒加载呢?如果只是单纯的一个列表进行懒加载可以通过元素高度来判断,如果复杂的单页面进行懒加载就很难实现
答:@不爱吃西红柿的鱼回答
文档:https://mp.weixin.qq.com/debug/wxadoc/dev/component/image.html?t=201715

binderror HandleEvent 当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'}bindload HandleEvent 当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'}

问题:
微信小程序调用自定义方法
getStatus 是一个方法,怎样写一个方法根据传入的参数返回一个值,还有在前端页怎么调用这个方法。
就像angularJs 那样。小程序怎么实现
2.png

答:@wenkanglin回答
首先,你更正一下写法,不用在小程序中使用html的标签,把div换掉,使用view组件。虽然像一些html的标签在小程序中编译运行不会报错,但也不会被识别的,另一些像h1、h2这些标签写在小程序中会报错!
然后,小程序中不支持直接事件传参,{{getStatus(param)}}会报错,我目前想到的办法是添加一个data属性来做,比如:

<view class="flow-tit" data-param="{{param}}" bindtap="{{getStatus}}"></view>

然后在js文件中获取该参数:

getStatus(e) {  console.log(e.target.dataset.param)}

问题:微信小程序get和post请求
小程序的请求要做跨域处理吗
答:@xiadd回答
不存在跨域问题,因为只可以访问后台设置好的的域名,还必须是https

问题:
微信小程序中生成3rd_session
请问这个3rd_session一般是怎么生成?后台服务器使用nodejs。
3.jpg
答:@lvsjack回答
3rd_session就是后台服务器生成的随机数。后台服务器可以调用head -n 80 /dev/urandom | tr -dc A-Za-z0-9 | head -c 168这样的shell 命令获取168位的随机字符串。

问题:
微信小程序 服务器 TLS版本
Linux 服务器上的 TLS 版本是 1.0 小程序要求 要 1.2该如何升级
补充:
1 nginx 的配置文件中 4.png
2 若勾选,不校验,则可以正常调用 api 
5.png
3 若不勾选,微信小程序开发工具报错 
6.png
4 真机调试则始终报错
7.png
答:@Wake回答
修改配置文件中的下面两个设置

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

问题:如何引入第三方插件(网上的方法已经试过)
引入第三方插件,网上有人说需要进行UMD打包,打包之后引入还是不行。有的说需要暴露接口,对插件代码进行改造,加入了module.exports = function,然后通过require引入,但是引入后还是报错。
个人引用的是strophe.js文件,求大神告知解决办法
6.png
答:@Vace_Vlm回答
去看了一下Strophe的源码。不知道你用的什么版本的。我看源码最后是这样的

function (Strophe, build, msg, iq, pres) {

    window.Strophe = Strophe;

    window.$build = build;

    window.$msg = msg;

    window.$iq = iq;

    window.$pres = pres;

};

小程序中宿主环境不是浏览器,所以没有window。这样写当然是不行的。你可以尝试修改为

function (Strophe, build, msg, iq, pres) {

    var global = {}

    global.Strophe = Strophe;

    global.$build = build;

    global.$msg = msg;

    global.$iq = iq;

    global.$pres = pres;

    module.exports = global

};

使用的时候:

var Strophe = require('./pathStrophe.js').Strophe

注:小程序和web编程是有区别的。我看了一下这个库的源码,使用了很多document, xhr之类的,这些是不支持的哦。可以查阅官方文档。Storophe源代码

问题:
微信小程序怎么修改 wx:for 的默认下标变量名index?项目中遇到一个业务场景, 在wxml页面中需要两个for循环嵌套, 在内循环里使用外循环的下标index, 但是这个又和内循环的index冲突, 各位有知道怎么自定义 wx:for 的下标吗?
答:@@shuangwaiwai回答
wx:for-index="index" 引号里面自己定义就好

问题:
微信小程序中如何通过JS来操作page标签的CSS属性?已经可以在wxss文件中使用page标签来设置整个页面的样式,但是如果想要通过用户的操作来对page标签的样式做出修改的话应该怎么做呢?
答:@许剑锋回答
小程序目前没有修改样式api,但是可以利用数据绑定实现动态改变样式,可以用view标签模拟page然后改变view标签的样式,以下案例演示了如果改变page背景颜色:
index.wxml

<view class="page" style="background-color:{{pageBackgroundColor}}" >

<button bindtap="changeColor" hover-class="none">点击修改背景颜色</button>

</view>

index.wxss

.page {

  display: block;

  min-height: 100%;

  width: 100%;

  position: absolute;

  left: 0;

  top: 0;

  z-index: 1;

}

index.js

 
Page({

  data: {

    // 自定义page对象CSS样式对象

    pageBackgroundColor:'#5cb85c'

  },

  onLoad: function () {},

  // 改变背景颜色

  changeColor: function() {

    var bgColor = this.data.pageBackgroundColor == 'red' ? '#5cb85c' : 'red';

    // 设置背景颜色数据

    this.setData( {

      pageBackgroundColor: bgColor

    } );

  }


路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)