26

github中mozilla的pdf.js开源项目实现在浏览器中查看PDF文件

PDF.js是一个用HTML5构建的便携文档格式(PDF)浏览器。
PDF.js是社区驱动的,由Mozilla实验室支持。目标是创建一个通用的、基于web标准的平台,用于解析和呈现pdf。

下面方法是在github中抄来的,我此次的项目是织梦二次开发,也就是说网站php环境的,不是nodejs。客户的需求是上传word文档后,可直接在浏览器中查看,那么我变通一下就是把这些文档转成PDF格式,之后使用PDF.js实现在浏览器中查看。我虽然全局安装了gulp,但是没有使用gulp server这条命令。在测试时访问http://域名/pdf.js/web/viewer.html,viewer.html没有做任何修改,加载了超多的js文件,造成很慢很慢,访问http://域名/pdf.js/examples/components/simpleviewer.html 只加载了必要的js,访问速度还可以。

所以,在使用中,还需要结合自己的实际需求来斟酌、测试。 Continue reading

07

微信小程序获取某个元素的高度宽度

 

微信小程序向原数组追加元素

 

05

微信小程序跳转页面失败报错:navigateTo:fail can not navigateTo a tabbar page

微信小程序报错:小程序使用wx.navigateTo()接口,由页面A跳转到页面B时,跳转失败,报文是navigateTo:fail can not navigateTo a tabbar page

原因是B页面已经加入到app.json中的tabBar项做为标签页了。

两种解决办法:

一、删除app.json中的tabBar项下的B页面,即B页面不能做为标签页面;

二、另建一个不加入app.json中tabBar项下的页面。

微信小程序向原数组追加元素

05

微信小程序获取当前页面URL的方法

使用getCurrentPages可以获取当前加载中所有的页面对象的一个数组,数组最后一个就是当前页面。

 

04

微信公众号关联小程序方法与数量

公众号关联小程序

公众号关联小程序后,将可在图文消息、自定义菜单、模板消息等功能中使用小程序。

关联规则:

  1. 所有公众号都可以关联小程序。
  2. 一个公众号可关联10个同主体的小程序,3个不同主体的小程序。
  3. 一个小程序可关联500个公众号。
  4. 公众号一个月可新增关联小程序13次,小程序一个月可新增关联500次。

关联流程:

登录公众号后台-小程序-小程序管理-添加-关联小程序

06211

06212

29

小程序wx.getUserInfo不能弹出授权窗口后的解决方案

微信小程序更新api后,wx.getUserInfo在开发和体验版本都不能弹出授权窗口。微信小程序文档说明:

注意:此接口有调整,使用该接口将不再出现授权弹窗,请使用 <button open-type=”getUserInfo”></button> 引导用户主动进行授权操作

  1. 当用户未授权过,调用该接口将直接报错
  2. 当用户授权过,可以使用该接口获取用户信息

对此,给出以下解决方案。

调取该方法失败后跳转到授权页面。

授权页面加入

并在js中,加入这个方法

至此,即可完成引导用户手动授权的过程。解决此次更新api所带来的问题。

26

小程序与小游戏获取用户信息接口调整,请开发者注意升级

为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。开发者可使用以下方式获取或展示用户信息:

一、小程序:

1、使用 button 组件,并将 open-type 指定为 getUserInfo 类型,获取用户基本信息。

详情参考文档:

https://developers.weixin.qq.com/miniprogram/dev/component/button.html

2、使用 open-data 展示用户基本信息。

详情参考文档:

https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html

二、小游戏:

1、使用用户信息按钮 UserInfoButton。

详情参考文档:

https://developers.weixin.qq.com/minigame/dev/document/open-api/user-info/wx.createUserInfoButton.html

2、开放数据域下的展示用户信息。

详细参考文档:

https://developers.weixin.qq.com/minigame/dev/document/open-api/data/wx.getUserInfo.html

请各位开发者注意及时调整接口。

17

织梦结合小程序的方法及插件安装

最近发现有很多朋友来到我的某篇文章中找“织梦结合小程序”的方法,但是我那篇文章不是关于这个问题的记录,所以在这里做一个织梦结合小程序的方法的外部链接吧,

织梦CMS万能API插件

这里有详细的文字和视频介绍,如果看不明白,他可联系作者,如果还是不明白可以联系我,一同研究。

30

解决微信小程序报错:Do not have getUserInfo handler in current page: pages/index/index…

如果是来找织梦结合小程序的朋友请移步“织梦结合小程序的方法”,如果是想解决标题中提到的问题请向下看。

Do not have getUserInfo handler in current page: pages/index/index. Please make sure that getUserInfo handler has been defined in pages/index/index, or pages/index/index has been added into app.json

放了好几周才又开始做的微信小程序,之前在页面中做了一些代码测试,隔了这么长时间了,也不记得都动了哪里。

涉及到制作交互部分了,打开了默认的获取用户信息的代码的注释,点击后,报错,报文如上。index.js中、app.js中、…有一些小改,但是都不是真正的原因。

百度上查查吧,但查到的内容也是过来人犯过的错,在这里也记录一下,我也出现了这些提到的。

1. 检查报错对应js在Page之外是不是var了一些不对的值,如:  var RSA = require(‘../utils/wx_rsa.js’);

2.调整app.json中Pages里面的页面注册顺序 ;

3.检查wxml中bindtap是否在js里面将方法创建。

上面第1条是我存在的问题,我在app.js文件中的app({……})之个引用了文件const cfg = require('./config');而且在./config.js文件中还有var的定义,改为let后,没有解决我的问题(但是这不代表不能解决别人的问题)。

再说一下上面的第2条,有个朋友是通过修改app.json中的pages下定义路由的顺序修改了BUG,他的原话如下:

位置调换到后面的 “pages/personal/personal  页面 ,.js 文件中 没有使用Page() 函数注册页面,导致后续页面注册被中断了

测试了一下,把某模块中的js文件清空,控制台提示内容如下:

pages/regulation/regulation.js 出现脚本错误或者未正确调用 Page()

估计那位朋友也不是撒谎,也许是还有别的情况不同的关系吧。

下面说一下这次(pages/index/index.js文件中)我认为很严重的直接造成上面报错的一堆错误:

在上面“…111…”中,有很多代码,但都是事件处理函数等,是不应该在Page.data下的,应该是同级的,Page.data的闭合括号不知道什么时候弄到结尾去的,刚才我是一直没查出来这个错,也是无意间发现的,这个错误比天大啊。

也许是我在上次做测试的时候,复制完代码准备改还没改的情况下放手的,也真是记不清了。

所以,当出现上面出现上面报错时,解决方法还要加上一条,查查自己的代码是否有闭合位置错误的情况发生。

右键点击编辑器区域,选择“格式化文件”,仔细查一查函数的闭合情况。

—————————— 2018-09-05 ——————————

又是一个低级错误,造成这样的报错。

.wxml文件中的部分源码:

报错原因:引号内getUserInfo的后面多了一个空格

买疙瘩,各种错误,不重样儿。

28

三角函数、公式、勾股定理、三角形

一般三角形
b7003af33a87e9500613e51118385343fbf2b442
设三角形三边为AC,BC,AB,

点D垂直于AB,为三角形ABC的高
如图,利用勾股定理,得
AC2-AD2=CD2① CB2-BD2=CD2
①=②
AC2-AD2 =CB2-BD2
因为 AD+BD=AB

所以 AC2-(AB-BD)2=CB2-BD2
同样也有AC2-AD2=CB2-(AB-AD)2
③化简得:(AB2+CB2-AC2)÷2AB=BD
④化简得:(AB2-CB2+AC2)÷2AB=AD

直角三角形

性质1:直角三角形两直角边的平方和等于斜边的平方。
性质2:在直角三角形中,两个锐角互余。
性质3:在直角三角形中,斜边上的中线等于斜边的一半。
性质4:直角三角形的两直角边的乘积等于斜边与斜边上高的乘积。
性质5:如图,Rt△ABC中,∠BAC=90°,AD是斜边BC上的高,则有射影定理如下:

(1) AD^2=BD·DC,
(2) AB^2=BD·BC , 射影定理图
(3) AC^2=CD·BC 。 等积式
(4)AB*AC=AD*BC (可用面积来证明)
(5)直角三角形的外接圆的半径R=1/2BC,
(6)直角三角形的内切圆的半径r=1/2(AB+AC-BC)(公式一);r=AB*AC/(AB+BC+CA)(公式二)
5243fbf2b211931333d4280965380cd790238df0
等腰直角三角形三边之比:1:1:根号二

============================

三角函数公式

sin30°=1/2 sin45°=√2/2 sin60°=√3/2
cos30°=√3/2 cos45°=√2/2 cos60°=1/2
tan30°=√3/3 tan45°=1 tan60°=√3
cot30°=√3 cot45°=1 cot60°=√3/3
sin15°=(√6-√2)/4 sin75°=(√6+√2)/4 cos15°=(√6+√2)/4
cos75°=(√6-√2)/4(这四个可根据sin(45°±30°)=sin45°cos30°±cos45°sin30°得出)
sin18°=(√5-1)/4 (这个值在高中竞赛和自招中会比较有用,即黄金分割的一半)
正弦定理:在△ABC中,a / sinA = b / sin B = c / sin C = 2R (其中,R为△ABC的外接圆的半径。)

三角函数的诱导公式(六公式)
公式一:
sin(α+k*2π)=sinα cos(α+k*2π)=cosα tan(α+k*2π)=tanα
公式二:
sin(π+α) = -sinα cos(π+α) = -cosα tan(π+α)=tanα
公式三:
sin(-α) = -sinα cos(-α) = cosα tan (-α)=-tanα
公式四:
sin(π-α) = sinα cos(π-α) = -cosα tan(π-α) =-tanα
公式五:
sin(π/2-α) = cosα cos(π/2-α) =sinα
由于π/2+α=π-(π/2-α),由公式四和公式五可得
公式六:
sin(π/2+α)= cosα cos(π/2+α) = -sinα sin(π/2+α)= cosα
cos(π/2+α)= -sinα tan(π/2+α)= -cotα cot(π/2+α)= -tanα
sin(π/2-α)= cosα cos(π/2-α)= sinα tan(π/2-α)= cotα
cot(π/2-α)= tanα sin(3π/2+α)= -cosα cos(3π/2+α)= sinα
tan(3π/2+α)= -cotα cot(3π/2+α)= -tanα sin(3π/2-α)= -cosα
cos(3π/2-α)= -sinα tan(3π/2-α)= cotα cot(3π/2-α)= tanα
诱导公式记背诀窍:奇变偶不变,符号看象限。

和(差)角公式
三角和公式
sin(α+β+γ)=sinα·cosβ·cosγ+cosα·sinβ·cosγ+cosα·cosβ·sinγ-sinα·sinβ·sinγ
cos(α+β+γ)=cosα·cosβ·coscγ-osα·sinβ·sinγ-sinα·cosβ·sinγ-sinα·sinβ·cosγ
tan(α+β+γ)=(tanα+tanβ+tanγ-tanα·tanβ·tanγ)/(1-tanα·tanβ-tanβ·tanγ-tanα·tanγ)
(α+β+γ≠π/2+2kπ,α、β、γ≠π/2+2kπ)
积化和差的四个公式
sina*cosb=(sin(a+b)+sin(a-b))/2
cosa*sinb=(sin(a+b)-sin(a-b))/2
cosa*cosb=(cos(a+b)+cos(a-b))/2
sina*sinb=-(cos(a+b)-cos(a-b))/2
和差化积的四个公式:
sinx+siny=2sin((x+y)/2)*cos((x-y)/2)
sinx-siny=2cos((x+y)/2)*sin((x-y)/2)
cosx+cosy=2cos((x+y)/2)*cos((x-y)/2)
cosx-cosy=-2sin((x+y)/2)*sin((x-y)/2)