• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

小程序开发总结(含真机调试问题~)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

1. 真机调试获取不到数据

问题描述:在模拟器上可以获取到数据,但是在真机调试获取不到数据

解决:配置服务器request合法域名

并且一定要记得取消勾选不校验合法域名

 

2.服务器api返回的json字符串前面多了个空格

问题描述:真机能够获取到了数据,但是返回的json字符串前面多了个空格

原因:服务器有文件格式是utf-8 with bom ,应改成utf-8 无 bom,可用notepad++ 处理。且要记得不要用记事本修改服务器代码/配置文件,会改成有BOM底的。

解决:

法一:(从客户端解决,但是不治本,不推荐)

您可以判断 typeof res,如果是字符串则尝试 JSON.parse(res.replace(new RegExp('\ufeff', 'ig'), ''))

("\ufeff"表示非法字符)

 

法二:(从服务端解决,直接返回对象,治本)

修改服务器的默认打开为notepad++

在服务器里面根据最后修改时间判断哪些文件(包括配置文件)是经过windows的记事本修改的

并保存为utf-8无bom格式

 

3. 致命错误:Call  to undefined function curl_init()

首先使用phpinfo()查看一下你的curl库有没有打开(ctrl+f,有出现curl enabled即可)。如果没有的话,编辑php.ini文件。

 1.)phpinfo()里面没有curl,

mydomain/info.php

(ubuntu需要安装php7.0-curl,前提:Php为7.0版本)

=> apt-get update

=> sudo apt-get install curl libcurl3 libcurl3-dev php7.0-curl

=> 重启apahce服务器。

=> 解决

 

如果没enabled,就是没加载上
sudo find / -name 'php.ini'  找到php.ini 文件在哪里
1、Windows下的PHP开启curl库支持: 

在/etc/php/7.0/apache2/php.ini
打开php.ini,将extension=php_curl.dll前的;号去掉。


2.保存之后还要重启apahce服务器。

 

 4.新版授权方式

 1. 用户授权   

<button
  wx:if="{{canIUse}}"
  open-type="getUserInfo"
  bindgetuserinfo="bindGetUserInfo"
  hidden="{{loadingHidden}}"
  class='onMiddle'
>
授权登录
</button>
<view wx:else>请升级微信版本</view>
data: {
    canIUse: wx.canIUse('button.open-type.getUserInfo')
}
bindGetUserInfo(e) {
    console.log(e.detail.userInfo);
}

 2.判断是否授权

// 查看是否授权
wx.getSetting({
    success(res) {
        if (res.authSetting['scope.userInfo']) {
            // 已经授权,可以直接调用 getUserInfo 获取头像昵称
            wx.getUserInfo({
                success(res) {
                    // console.log(res.userInfo)
                    that.setData({
                        userInfo: res.userInfo,
                        loadingHidden: true
                    });
                }
            })
        }
    }
})

 

 

5.小程序的token机制

问题描述:小程序能获取code, openid, secret, =>token,但是token老是校验失败,返回信息"Token过期或失效"?

原因:断点调试服务器,发现token没有发送到服务器上

解决:重构request方法,在header:{token} 携带token

 

自定义登陆态是服务器上将openid 与 session_key 关联起来的(进行hash算法)得到的唯一的token,在服务器中缓存下来并且返回给客户端

 

持续更新中~

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap