初步接触Wex5,操做起来仍是以为比较复杂!并且教程很少,让我着实比较烦躁!
所以本身动手丰衣足食!仍是比较实在的!php
采用版本:WeX5应用快速开发框架V3.5正式版thinkphp
咱们使用Wex5的仿淘宝APP案例进行初步的数据对接!
打开Wex5项目,U12/demo/taobao/main.js找到如下代码:数据库
01.Model.prototype.goodsDataCustomRefresh = function(event) { 02. /* 03. * 一、加载商品数据 04. */ 05. var url = require.toUrl("./main/json/goodsData.json"); 06. allData.loadDataFromFile(url, event.source, true); 07. };
复制代码这里调用的本地的固定.json输出!而咱们作的app数据怎么多是固定的呢?而大多数项目都是和PC&WAP连在一块的!所以为了多端统一的数据!咱们就必须统一使用一个数据库做为存储!而又不想写太多代码!能够直接调用Thinkphp的JS输出!为了和案例保持一致!那么你须要对输出作些变更!json
咱们首先在Thinkphp的项目里新建一个API文件!初步命名为ApitpAction.class.php做为对接APP的接口的文件!
根据上述goodsData.json文件,咱们获得相应的数据库字段!为了简单的演示!所以咱们在数据库中的goods表与此对应!固然在正式项目中你得使用本身的字段对接!跨域
01. public function goods() { 02. $result=M('goods')->where($where)->order("id desc")->select(); 03. output_data($result); //直接输出数组 04. }
复制代码那么咱们的这个接口文件就是http://127.0.0.1/Apitp/goods;而后把如下代码替换第一步的JS中!数组
01.Model.prototype.goodsDataCustomRefresh = function(event) { 02. /* 03. * 一、加载商品数据 04. */ 05. var url = require.toUrl("<span style="background-color: rgb(255, 255, 255);">http://127.0.0.1/Apitp/goods</span>"); 06. allData.loadDataFromFile(url, event.source, true); 07. };
复制代码这样咱们能够看到输出结果正常输出中哦!其它对接以此触类旁通便可!app
到了这里最关键的一步到了!为何我要使用output_data来作为输出JSON?下面咱们要针对这个作一个特别的处理!就是跨域输出处理!
所以咱们在thinkphp项目下的common.php里对output_data进行处理!将如下代码复制至common.php便可:框架
01.function output_data($datas, $extend_data = array(), $error = false) { 02. 03. 04. $data = $datas; 05. 06. $jsonFlag = 0 && C('debug') && version_compare(PHP_VERSION, '5.4.0') >= 0 07. ? JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE 08. : 0; 09. 10. if ($jsonFlag) { 11. header('Content-type: text/plain; charset=utf-8'); 12. } 13. 14. if (!empty($_GET['callback'])) { 15. echo $_GET['callback'].'('.json_encode($data, $jsonFlag).')';die; 16. } else { 17. header("Access-Control-Allow-Origin:*"); 18. echo json_encode($data, $jsonFlag);die; 19. } 20.}
复制代码
好了教程到此结束!若是你不是直接输出数组的话,那么你可能须要用到如下代码:ui
01.function output_data($datas, $extend_data = array(), $error = false) { 02. $data = array(); 03. if(!empty($extend_data)) { 04. $data = array_merge($data, $extend_data); 05. } 06. 07. $data['datas'] = $datas; 08. 09. $jsonFlag = 0 && C('debug') && version_compare(PHP_VERSION, '5.4.0') >= 0 10. ? JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE 11. : 0; 12. 13. if ($jsonFlag) { 14. header('Content-type: text/plain; charset=utf-8'); 15. } 16. 17. if (!empty($_GET['callback'])) { 18. echo $_GET['callback'].'('.json_encode($data, $jsonFlag).')';die; 19. } else { 20. header("Access-Control-Allow-Origin:*"); 21. echo json_encode($data, $jsonFlag);die; 22. } 23.}
复制代码
是否是很简单呢!这样就不须要担忧跨域问题了!!url