欢迎光临,了解各类小程序、网站开发,就上众彬建站! 退出 注册 登录

微信小程序开发问答《五十二》为何不能在网页调用微信jsapi & 安卓手机wx.hid

发布:2022-03-15 17:27浏览: 来源: 作者:

1、为何不能在网页调用微信jsapi? 2、安卓手机wx.hideLoading()无效 3、ios不显示tabBar的文字

1、为何不能在网页调用微信jsapi? 作者:独行骚年

说到这问题,相信大部分程序员老手都会轻蔑一笑,当然是跨域导致的啊!但是为了一些小白,我觉得还是很有必要再说一次的。

首先介绍什么是跨域,由于浏览器的同源策略,出于防范跨站脚本的攻击,禁止客户端脚本( 主要是JavaScript)对不同域名的服务器接口进行跨站调用。一般,只要网站的 协议名protocol(HTTP、ftp等)主机host端口号port 这三个中的任意一个不同,网站间的数据请求与传输便构成了跨域。

公众号开发,要想在前端调用jssdk,先要通过config接口注入权限验证配置。也就是先要获取wx.config 中参数的值。由于其中的参数值需要通过access_token和jsapi_ticket这两个参数来运算得到,而这两个参数需要请求微信接口才能获取,微信接口域名跟我们的网页明显不在同一域名下,所以造成跨域,从而导致我们无法在前端获取配置的参数。因此我们只能通过服务器用服务器端语言php java c#等进行相关微信接口的请求。

另外,也有人非得用前端去请求,比如我,通过JSONP形式去请求数据,首先:JSONP这种非官方协议是需要后台配合写返回数据的,也就是返回回调函数,微信不可能做这个,数据不安全。

总而言之,言而总之,微信就是要让你在后台使用服务端语言请求接口!!也为了安全!

java版的jssdk 接口出入配置参见http://www.cuiyongzhi.com/post/57.html

2、安卓手机wx.hideLoading()无效

作者:意外金喜

无效代码

首先

在onLoad()中


				
  1. [javascript] view plain copy
  2. wx.showLoading({
  3. title: "数据加载中",
  4. mask: true
  5. });

异步获取数据后 wx.hideLoading(); 测试结果 在微信开发者工具和iOS上都能正常隐藏loading框,安卓手机上却无法隐藏。 解决方法 在坑了很久以后发现在wx.hideLoading()方法外层加个setTimeout居然就解决了。


				
  1. [javascript] view plain copy
  2. setTimeout(() => {
  3. wx.hideLoading();
  4. }, 100);

加了一个很小的延迟。尴尬虽然问题解决了,但是也不知道是为什么。

3、ios不显示tabBar的文字

在写tabBar的时候配置了字体颜色,代码如下:

结果安卓上正常显示,苹果手机却无法显示tabBar上的文字,仔细看了下官网,

需要16进制颜色值

改成这样就好了。

然后又发现页面设置的背景颜色,iOS正常,安卓手机又无法显示了。。。

background: #666;

经过多次测试,得到的结果是,这个16进制颜色值不能简写,6位要写全。

background: #666666; 这样就正常了。










免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。