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

 

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. 用户授权   


请升级微信版本
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

 

小程序开发总结(含真机调试问题~)_第1张图片

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

 

持续更新中~

小程序开发总结(含真机调试问题~)_第2张图片

 

 

你可能感兴趣的:(小程序)