Coder Social home page Coder Social logo

weapp-ide's Introduction

微信小程序的IDE用了reactjs + flux的架构

可以分析它的源码学习这套框架
破解方式:把相应的文件做个替换就行。
当前文件可破解版本:v0.10.102800

mac上:
找到开发工具的程序,右击“显示包内容”:
Resources/app.nw/app/dist/components/create/createstep.js
Resources/app.nw/app/dist/stores/projectStores.js
Resources/app.nw/app/dist/weapp/appservice/asdebug.js

window上:
安装完后,一般是放在这个目录里:C:\Program Files (x86)\Tencent\微信web开发者工具
找到相应文件再替换:
package.nw/app/dist/components/create/createstep.js
package.nw/app/dist/stores/projectStores.js
package.nw/app/dist/weapp/appservice/asdebug.js

破解的时候,把整个代码大概浏览了一遍,自己折腾了下。(因为之前写过react + flux的代码,所以对这个项目的结构非常熟悉。)

主要的修改,如果你有兴趣可以浏览下:
1、asdebug.js修改
(1)搜索“域名”两个字,找到类似域名校验出错等字眼的那一个function 把整个function内部的内容都注释掉,直接return true;
这个主要是为了去掉安全域名的限制
(2)搜索“URL 域名不合法,请在 mp 后台配置后,重启项目继续测试” 跟上面一样,把前面if改成if(false)
这个修改主要是为了去掉websocket的安全名限制
(3)搜索“__wxConfig.isTourist”,把它改成false
这个修改是为了去掉游客身份。

2、projectStores.js
(1)搜索“setProjectConfig: function” 这个函数的定义
把“i = e.isTourist”(不一定是i和e,不同的js格式化工具可能会有不一样的结果)这一小段注释掉,把下方的第一个if(i) { ... }整块注释掉。
这一个用来判断是否是游客身份,是的话直接返回。但我们不想只是游客身份,所以这里我们不能让它返回,整个注释掉就行了。
(2)在上面这个函数从上往下找try catch,把找到的第一个整块注释掉 然后把它下方的第一个if改成if(true),if里的第一行var赋值语句的等号后面直接改成{Setting: {MaxLocalstorageSize: 10}},因为在dist/common/assdk/storageSdk.js里有对这个值的引用,如果这里没有设置这个MaxLocalstorageSize的话,wx.setStorage会保存失败,wx.setStorageSync会报错。
另外这里设置成if(true)是因为我们在创建项目时随便填appid,所以网络请求返回肯定是error,这里的JSON.parse结果在if里是通不过的。我们把这一整段注释掉,不去管网络返回的error。进if后会在本地存储新建项目的信息。
这个地方的修改比较复杂,截图如下:

预览

3、createstep.js
(1)搜索“当前开发者未绑定此 appid”
把第一个if及周边的东西都注释掉,只执行下一个if。
这个地方是创建的时候,返回用户信息的地方,上面说过我们创建时返回的肯定是error,所以这里自然也拿不到用户信息,反而是一个用户appId错误提示,所以这里我们动点手脚,把这个判断都注释掉,让它只执行用户信息返回的成功代码,同时我们创建一个假的用户信息object。
这个修改比较复杂,截图如下:

预览

网络请求的接口,微信做了一些安全限制,要破解才能给任意地址发请求。websocket的接口也是一样。本项目的破解文件已经解决了这些问题。

另外,创建出来的demo项目中,调用wx.login是不能成功的,所以改了demo的代码,在app.js里直接给globalData.userInfo赋值即可。

init: function() {
  this.globalData.userInfo = {
    "nickName": "jason",
    "avatarUrl": "http://wx.qlogo.cn/mmopen/icSHGibMIMB82jDEHibGFA1s6dhwMibWrQAPeRvT2w2y2rpZVM5l3BftVEr3rTgX4fXDlznnMmZY0zYtgkfFw7L3o9r0tTblGTxB/0",
    "gender": 1,
    "province": "广东",
    "city": "深圳",
    "country": "**",
  };
},

然后在onLaunch里调用一下init()就ok

另外,最近也在编写一些小程序的教程:

【微信小程序开发•系列文章一】入门
【微信小程序开发•系列文章二】视图层
【微信小程序开发•系列文章三】数据层
【微信小程序开发•系列文章四】模块化
【微信小程序开发•系列文章五】主界面
【微信小程序开发•系列文章六】生命周期和路由
【微信小程序开发•系列文章七】websocket

几个问题说明

  1. MaxRequestConcurrent报错的问题
    这个在本项目的破解文件里已经直接覆盖了,不会报这个错了。
    (修改:asdebug.js里,搜MaxRequestConcurrent,很简单,直接把它设置成固定数字即可)

  2. 页面切换时会出现route错误的问题
    这个可能是开发工作自身的bug,用一段时间后就会这样,目前还没发现原因,不过解决这个问题很简单,关掉,重新再开就好了。

  3. Failed to load resource: net::ERR_NAME_NOT_RESOLVED
    这个问题gavinkwoe的项目中也说明了,主要是由于代理导致的,打开ide,菜单上选“动作”->“设置”,选直连就行

预览

后续还会更新更多的api的破解方式,欢迎大家持续关注

更多的微信小程序api,可以参考原官方文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/open.html
新开了个微信交流群,有兴趣的同学可以扫码进来交流:

预览

weapp-ide's People

Contributors

jsongo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

weapp-ide's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.