cocos creator 开发的小游戏微信登录(三)

1,437 阅读2分钟

之前我们已经在后台创了数据迁移工具文件了,并且生成了一个数据表,但后面还有很多东西没有做,今天我们继续,废话少说,下面直接开始。

1. (1)打开项目

image.png

(2)在后台的模块admin的控制器下新增一个api控制器文件。

image.png

(3)控制器也是继承Backend

image.png

(4)增加一个登录的方法,暂时写一些固定的数据,看下接口有没有返回数据。



    /**

     * @AdminAuth(auth=false,menu=false,login=false,title="Index")

     */

    public function login(){

     

        return json([

            'code' => 0,

            'data' => [

                'menus' => 'sss',

                'nodes' => 'ffff',

            ],

        ]);

 

    }

(5)测试了一下,是可以返回数据的。证明接口是没问题。

image.png

2. 接下来,我们在小游戏端测试下,看下能不能请求到数据。

(1)打开game.ts脚本。封装一个请求http的函数。


    //发送请求

    sendHttp(api_url, callback) {

        var xhr = new XMLHttpRequest();

        xhr.open('GET', api_url, true);

        xhr.onload = function() {

          if (xhr.status >= 200 && xhr.status < 400) {

            var data = JSON.parse(xhr.responseText);

            callback(null, data);

          } else {

            callback('请求失败: ' + xhr.status, null);

          }

        };

        xhr.onerror = function() {

          callback('请求错误', null);

        };

        xhr.send();

    }

(2)为什么封装一个原生的呢,因为我用的cocos creator 还是3.6的,官方3.7的文档里建议用的是fetch 方法,但我的3.6版本好像用不了,不知道是版本的问题还是我自己环境的问题,所以暂时用原生的。

image.png

(3)在success 里调用请求的接口

 


             let api_url="http://xxxx.xxxx.cn/index.php/admin/api/login"

                this.sendHttp(api_url, function(error, data) {

                    if (error) {

                      console.error(error);

                      return;

                    }

                    console.log(data);

                  });

  image.png

  (4)重新构建

image.png

(5)在微信开发者工具打开该项目。如果显示域名不在request 合法域名列表中,可以在详情列勾选不校验合法域名。这样就不报错了,但这只是临时的。最终还是要在小游戏开发平台上添加这个域名。

image.png

image.png

(6)在打印可以看到返回的数据了。

image.png

好了,今天就先介绍到这里了。可能写的过程中还有很多不好的地方,希望大家能指出来,在此,谢谢大家