微信小游戏开发者注册真机测试连不上,开发者工具却可以

请登录查看
开发者工具提供了命令行与 HTTP 服务两种接口供外部调用,开发者可以通过命令行或 HTTP 请求指示工具进行登录、预览、上传等操作。
通过命令行调用安装完成的工具可执行文件,完成登录、预览、上传、自动化测试等操作。调用返回码为 0 时代表正常,为 -1 时错误。
命令行工具所在位置:
macOS: &安装路径&/Contents/Resources/app.nw/bin/cli
Windows: &安装路径&/cli.bat
1. 命令行启动工具
-o, --open [projectpath]: 打开工具,如果不带 projectpath,只是打开工具。如果带 project path,则打开路径中的项目,每次执行都会自动编译刷新,并且自动打开模拟器和调试器。projectpath 不能是相对路径。项目路径中必须含正确格式的 project.config.json 且其中有 appid 和 projectname 字段。
cli -o base64@/Users/username/demo
2. 命令行登录
命令行提供两种登录方式:一是将登录二维码转成 base64 给用户,让用户自己集成到自己系统中使用;二是将二维码打印在命令行中。
-l, --login: 启动登录逻辑。
--login-qr-output [format[@path]]: 指定二维码输出形式,format 可选值包括 terminal(命令行输出), base64, image。如果有填 path,表示结果输出到指定路径的文件中。如果没填 path,表示将结果输出到命令行。不使用此选项或使用了但没有填 format 的话则默认为命令行打印。
cli -l --login-qr-output base64
cli -l --login-qr-output base64@/Users/username/code.txt
3. 命令行提交预览
预览时必须处于登录状态,如果没有登录,会提示需先登录。预览的二维码可命令行打印也可以转成 base64。ES6 等项目配置从 project.config.json 读。
-p, --preview &project_root&: 预览代码,project_root 指定项目根路径。
--preview-qr-output [format[@path]]: 指定二维码输出形式,语义同登录用的选项 --login-qr-output。
cli -p /Users/username/demo
cli -p /Users/username/demo --preview-qr-output base64@/Users/username/code.txt
4. 命令行上传代码
上传代码时必须处于登录状态,如果没有登录,会提示需先登录。
上传代码需要的信息包括项目根目录、版本号、以及可选的版本备注。
-u, --upload &version@project_root&: 上传代码,version 指定版本号,project_root 指定项目根路径。
--upload-desc &desc&: 上传代码时的备注。
cli -u 1.0.0@/Users/username/demo --upload-desc 'initial release'
5. 支持自动化测试
-t, --test &project_root&: 提交自动化测试,project_root 指定项目根路径。
cli -t /Users/username/demo
意见反馈:
联系方式:
广告等垃圾信息
不友善内容
违反法律法规的内容
不宜公开讨论的政治内容微信开发HTML5轻游戏中的几个坑
发表于 09:40|
来源深海的博客|
摘要:基于微信开发的HTML5游戏,开发者需要克服哪些坑呢?又该如何推广呢?本文转自深海的博客,他分享了具体开发实现过程中,基于微信的Html5 WebApp需要注意哪些细节以及如何用代码实现。
【编者按】现如今微信为各种移动Web的小应用提供了肥沃的土壤,于是乎形形色色的应用孕育而出。人人都可以做开发,但不是每个人都能开发出好的应用,在开发过程中开发者会应注意哪些“坑”呢?本文转自,他分享了在具体开发实现过程中基于微信的Html5 WebApp需要注意的细节以及如何用代码实现。&全文如下:不同于传统的手游商店下载模式,HTML5 手机网页游戏是可以直接运行在微信内置的浏览器里。这段时间团队一直在做微信端的一些产品设计和开发,当然也包含一定的运营工作。做过的东西也不少,微名片、微抢票、微活动、微招聘等一些小case。今天想说的是我们在微信中被玩的最活跃的轻游戏--微刮奖,这东西可以被用来刮书、刮门票、刮套餐,还有客户要用来刮电话费。先上图,感知一下具体样子:而我想分享的是我们在具体开发实现过程中,基于微信的Html5 WebApp需要去克服的一些坑:这个小游戏的基本规则是:限定用户每天刮书次数是2次 (自由刮一次和分享后再刮一次),每天都可刮奖为此,我们希望实现的思路首先是限定在只能使用微信中玩,实现代码如下:if (!HttpContext.Current.Request.Browser.IsMobileDevice)
var result = new RedirectResult("url", true);
filterContext.Result =
if (string.IsNullOrEmpty(HttpContext.Current.Request.UserAgent))
var result = new RedirectResult("url", true);
filterContext.Result =
if (HttpContext.Current.Request.UserAgent.IndexOf("MicroMessenger") == -1)
var result = new RedirectResult("url", true);
filterContext.Result =
}这招通过UserAgent的判断思路貌似网上大家也用的比较多,不用却依然存在挺多坑:1. 初级问题:iOS和主流Android机器没问题,但碰到Windows Phone,就直接在微信中跳出去无法玩。原因是微信中默认的UserAgent是MicroMessenger,在这些机器的微信版本中不存在,所以为了解决Windows Phone,我们加入了如下代码: var useragent = HttpContext.Current.Request.UserAgent.ToLower();
if (useragent.IndexOf("Windows Phone".ToLower()) != -1)
base.OnActionExecuting(filterContext);
}2. 高级问题:有高人直接使用一些插件工具,伪造MicroMessenger的UserAgent,这样理论上就可以在任何可以打开网页的浏览器中玩了,解决此问题,我们利用的是微信的sdk中接口:仅当用户在微信中使用时执行控件初始化刮奖操作,否则其他终端浏览就会一直处于loading状态。 dataForWeixin.callback = function () {
//一些初始化的操作
}关于微信的接口大家直接阅读原文,这边不直接贴代码出来了,不然贴不下。上面的思路做了很多事,但对我们的业务规则来说还有一个很致命的bug没有解决。这个bug就是只要用户手动清除微信中的cookie和缓存信息,然后重新进入活动,就能无限次刮奖,理论上是百分百中奖了。这是由于我的规则将判断当前微信用户是否刮过奖的判断依据放在了cookie中,貌似除此以外也没有其他办法。想利用openid,但我们的微信订阅号,如果从朋友圈过来的话都无法获取openid,还是依然存在上诉问题。&为了解决这个问题,最后我们终于找到了一条思路,借用微信服务号的授权接口,基本思路如下:用户进入页面loading=》程序调用我们另外一个微信服务号的授权接口,返回openid=》将openid存入cookie(若不存在或过期,则重新执行前面步骤)=》根据openid从数据库判断本期活动刮了几次,同时,这个过程会自动判断用户是否在微信中玩游戏,否则回调将一直处于loading状态。整个过程使用下来,还比较流畅。这边贴一下授权相关的代码:#region 微信授权
public ActionResult WeixinLogin(string CurrentUrl)
string url = WeixinOAuth2.Authorize(Server.UrlEncode(CurrentUrl));
return RedirectPermanent(url);
public ActionResult WeixinCallback()
if (!string.IsNullOrEmpty(Request["code"]))
// 获取AccessToken参数
var param = WeixinOAuth2.GetAccessToken(Request["code"]);
string url = string.Format("{0}#access_token={1}&openid={2}&expires_in={3}&state={4}", ConfigHelper.GetValue("Weixin_Callback"), param.access_token,param.openid,param.expires_in, Server.UrlDecode(Request.QueryString["state"]));
//重新跳转到回调页面,保持腾讯登录相同风格
return Redirect(url);
return View();
    /// &summary&
/// 授权请求页面
/// &/summary&
/// &param name="flag"&0为获取微信基本信息 1为获取微信openid接口&/param&
/// &returns&&/returns&
public static string Authorize(string ReturnUrl)
string url=string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope=snsapi_base&state={2}#wechat_redirect", Weixin_AppKey, Weixin_GetOpenIDCallback, ReturnUrl);
    #endregion至此,在微信中解决如何判断当前用户的唯一性问题,基本上完全可以搞定。针对这套方案唯一存在的风险就是微信的接口的通畅性和稳定性。当然,在整个开发过程中还有很多其他问题需要一一克服,比如,微信分享后回调的实现,相应很多朋友都要用,还比如这种小游戏我们甚至需要支持grps下流程访问,不可能那些很大的游戏框架,这怎么搞等等问题,这些打算后面再慢慢写些文章分享,今天的东西够多了,先歇歇去。原文出自:由CSDN和《程序员》杂志联合主办的&&将于8月23日在北京举行,主办方还邀请了来自于一线的微信开发商技术负责人或资深工程师从企业应用开发高级篇、智能客服与LBS、微信支付、微信上的HTML5社交应用、微信小店开发等角度为与会者带来实战分享(&&)。目前报名处于优惠票价阶段,通过申请加入CSDN CTO俱乐部即可享受8折购票价格(票款中均含午餐),在前完成付款的同学还将免费获赠微信开发图书一本(两选一,活动现场发放)。光开发出一款产品还不行,还需有得到有效的推广,那么如何利用免费的方式来推广呢?前Zynga中国总经理、云智联CEO田行智将带来《》的主题分享,解读《碰碰里》是如何验证0推广、无任何激励手段,但却拥有每天100K 自然增长的微信HTML5应用。欢迎大家到现场与田行智深度沟通。目前,&(持续关注更新)。另外,主委会还开设了&,欢迎技术精英自荐和互相推荐,也可以直接联系&。此外,主办方还特别开设了&(&)现在就去&。微信开发者QQ群:(已满)和微信开发者② QQ群:,欢迎加入交流。相关阅读:&关注&,了解更多研发资讯,参与互动讨论;当然您可以向我们推荐更多有趣、有质量的文章。&
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章第 46 期 小程序优势之一,是可以同时在不同设备上运行,但这同时会带来潜在兼容性问题。 对于个人开发者而言,解决兼容性问题很麻烦, 因为他们通常只会用自己的手机来测试小程序。 当然,微信早就意识到这个问题,并在早先的新能力更新中, 为小程序开发者提供了免费的真机测试工具。 知晓程序(微信号 zxcx0101)现在就来带大家看看,这个免费的测试工具该怎么用。 关注「知晓程序」微信公众号,在微信后台回复「问答」,获取往期所有小程序问答文章。 微信提供的这个工具,不需要自己准备测试手机。 这个工具已经免费为你提供了大量 Android 机型供你测试,你需要做的,就是点点鼠标、申请测试。 在最新版、测试版「微信 Web 开发者工具」中,都内置了这个工具。 在开发者工具中,点击右上角的「测试」按钮,就可以查看以往申请过的测试报告。
如果你希望使用旧版「微信 Web 开发者工具」的同时使用真机测试系统, 可以考虑下载测试版「微信 Web 开发者工具」,它与旧版开发者工具可以共存。 关注「知晓程序」微信公众号,回复「工具」,获取测试版「微信 Web 开发者工具」下载地址。 点击「申请」按钮,开发者工具就会自动将你的小程序代码进行真机测试,全程无需手动操作。接下来只需要休息一下,等待结果出炉就可以了。 测试完毕后,在「测试报告」中会出现新的报告结果。点击其中一份报告,就可以查看报告详细信息。
由报告中可以看出, 这份测试工具会将你的小程序代码在不同的 Android 机型中进行测试。 测试时,系统将会让手机直接在小程序中随机加载不同页面,记录运行错误、系统资源占用等信息,让开发者可以更有针对性地进行优化。 需要注意的是, 这个工具并非可以无限次申请测试,每个小程序 AppID 在每个 24 小时,可以执行一次测试。也就是说,当你申请了一次测试,需要等待 24 小时才能执行第二次测试。 即使如此,这个完全免费的测试小工具,依然可以帮助我们找到小程序中许多潜在问题,减少正式版小程序出现 bug 的概率。 关注「知晓程序」公众号 在微信后台回复「问答」,获取往期小程序问答文章。在微信后台回复「定制」,做一个属于你的小程序。特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
一键安装官方客户端
重大事件及时推送 阅读更流畅
http://spider.nosdn.127.net/451cc8edc16d65695ec2e.gif利用 three.js 开发微信小游戏的尝试 - 为程序员服务
利用 three.js 开发微信小游戏的尝试
这是一次利用
开发微信小游戏的尝试,并不能算作是教程,只能算是一篇笔记吧。
微信 WeChat 6.6.1 开始引入了微信小游戏,初期上线了一批质量相当不错的小游戏。我在查阅各处的文章时候,发现其中有几款是基于
开发的,目前火爆朋友圈的《跳一跳》就是其中之一。这引起了我的注意,想起几年前也做过不少 WebGL 的尝试,于是禁不住想要弄到微信小游戏平台上试试。
最新版本的
首先应该具有一定的
开发经验,有之前写过的简单演示代码;
最新版本的“
另外补充一点:需要足够的耐心,微信开发者工具问题多多,编辑器也各种问题,我是使用 WebStorm 来编写代码,您不妨也试试。遇到奇怪的问题的时候,可能需要多启动几次开发者工具,非常令人恼火。
找一个之前的 WebGL 演示
我随便找了一个很久以前做过的演示代码,如下:
可以拖动旋转,
创建微信小游戏项目
好啦,现在可以进入开发者工具尝试移植了。
首先,创建一个标准的小游戏项目。
选择“小游戏”项目进行创建,并选择一个空的目录作为项目目录
点击“确定”就会打开一个模板项目,是一个射击游戏,大致的结构如下:
├── game.js
├── game.json
├── project.config.json
├── README.md
├── databus.js
├── main.js
├── base
├── animation.js
└── ...
├── libs
├── symbol.js
└── webapp-adapter.js
├── npc
└── enemy.js
├── player
├── bullet.js
└── ...
└── runtime
├── background.js
└── ...
├── audio
├── bgm.mp3
└── ...
└── images
├── Common.png
└── ...
基于这个模板,我们可以将不需要的内容暂时删除,以便跑我们自己的项目。其中,射击游戏相关的内容都可以移除了,但是我们要保留一些关键的代码和配置文件,清理以后,大概会是这个样子:
├── game.js
├── game.json
├── project.config.json
├── README.md
├── main.js
└── libs
├── symbol.js
└── webapp-adapter.js
└── images
目录里面放置我们需要使用到的图片,在这个例子中,我放了粒子图片和 indienova Logo 图片在里面;
将我们必然会用到的
three.min.js
也可以,但是后面需要修改这个文件,所以建议使用没有 minified 的版本)放入
如果有其它资源,比如音频文件什么的,也可以自建目录放进去;
然后需要修改一下配置文件,简单的说,只要修改
project.config.json
projectname
不变,这个是入口,会引入
清空,我们的新代码会在这里完成。
我们还保留了两个 js 文件,
webapp-adapter.js
。这里需要
webapp-adapter.js
很重要,官方解释如下:
小游戏的运行环境在 iOS 上是
,在 Android 上是
,都是没有 BOM 和 DOM 的运行环境,没有全局的 document 和 window 对象。因此当你希望使用 DOM API 来创建 Canvas 和 Image 等元素的时候,会引发错误。
这些使用 wx API 模拟 BOM 和 DOM 的代码组成的库称之为 Adapter。顾名思义,这是对基于浏览器环境的游戏引擎在小游戏运行环境下的一层适配层,使游戏引擎在调用 DOM API 和访问 DOM 属性时不会产生错误。Adapter 是一个抽象的代码层,并不特指某一个适配小游戏的第三方库,每位开发者都可以根据自己的项目需要实现相应的 Adapter。官方实现了一个 Adapter 名为
weapp-adapter
, 并提供了完整的源码,供开发者使用和参考。
除此之外 weapp-adapter 还模拟了以下对象和方法:
document.createElement
canvas.addEventListener
localStorage
XMLHttpRequest
需要强调的是,weapp-adapter 对浏览器环境的模拟远不完整的,仅仅只针对游戏引擎可能访问的属性和调用的方法进行了模拟,也不保证所有游戏引擎都能通过 weapp-adapter 顺利无缝接入小游戏。直接将 weapp-adapter 提供给开发者,更多地是作为参考,开发者可以根据需要在 weapp-adapter 的基础上进行扩展,以适配自己项目使用的游戏引擎。
原文请参阅:
可见,微信团队已经为我们开发游戏做好了一些准备,比如露出的
,我们到时候直接拿来使用就是。
将之前的代码移植到项目中
开始将之前写好的代码移植过来,注意由于要使用 ES 6(
)标准,所以之前的代码可能要做相应的调整,不过大部分都是语法的调整,有一些方法的使用需要增加
bind(this)
,具体的还请大家参阅我们提供的
,就算不看书,随便尝试一下也能很快有所了解。
的主体代码看起来是这样:
import * as THREE from 'libs/three.js'
= canvas.getContext('webgl')
let renderer
// ... 其它变量/常量 ...
* 游戏主函数
export default class Main {
constructor() {
this.start()
= new THREE.Scene()
= new THREE.WebGLRenderer({ context: ctx })
//... 其它代码块 ...
// 开始循环
this.loop()
// UPDATE 更新
update() {
// ... 数据更新代码块 ...
// RENDER 渲染
render() {
// ... 渲染代码块 ...
// 实现游戏帧循环
this.update()
this.render()
window.requestAnimationFrame( this.loop.bind(this), canvas )
一些要点:
由于微信已经为我们准备好了的
,所以我们无需自己再进行创建,只需要取得的
就可以了,这里我们使用的不是
let ctx = canvas.getContext('webgl')
然后我们在创建
WebGLRenderer
的时候,直接使用这个
就可以了。
= new THREE.WebGLRenderer({ context: ctx })
这两点做到了,基本上就不会有太大问题了。
一切正常的话,开发者工具里面应该就能跑得起来了。
能跑起来并不算完,还需要真机测试
真机调试不复杂,微信开发者工具提供了真机预览功能,只要点一下“预览”,就会上传代码,并生成二维码供测试。
开发者用微信扫描这个二维码,就可以打开测试。
如果您没有修改过 three.js 源文件,那么很有可能只看到一个黑屏。
还好,微信小游戏提供了一个调试开关,我们可以选择打开调试:
然后再次扫码进入,就可以查看调试信息了:
可以清晰的得知,
createElementNS
不被支持,那么我们可以将所有
createElementNS
createElement
(注意,这只是暂时解决方案,此方法并不是理想方案,我们以后应该会有更好的解决方法。通过修改 adapter 应该就可以减少 three.js 源文件的修改。)
document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' );
// 改为 ==&
document.createElement( 'canvas' );
不止这一处,而且也不止是针对 canvas 的创建,还有针对 img 的创建,可以都修改掉。
另外由于真机上跑的是 OpenGL ES 1.x/2.x/3.x,所以还有一句要处理:
var version = parseFloat( /^WebGL\ ([0-9])/.exec(gl.getParameter(gl.VERSION))[ 1 ] );
// 改为 ==&
var version = parseFloat( /^(WebGL|OpenGL ES)\ ([0-9])/.exec(gl.getParameter(gl.VERSION))[ 1 ] );
这样改过后,重新再尝试一下看,是不是已经可以了?
临时解决方案使用后,我后来尝试修改
webapp-adapter.js
,就不需要再对
进行修改了:
createElementNS: function createElementNS(nameSpace, tagName) {
return this.createElement(tagName)
方法很简单:我们在
的定义中添加
createElementNS
,然后忽略掉 NameSpace 即可。
好了,简单的介绍了一下怎么利用
开发微信小游戏,这并不是一篇教程,只是在目前信息和资料不完善情况下的一种尝试,也希望大家一起参与到开发和研究中来,互相交流。
欢迎加入我们的小组:
微信小游戏小组
indienova 小组
为了方便大家参考,特提供源代码。其中包括一个微信小游戏项目和原始的 WebGL 项目。
源代码下载
这几天研究这部分内容的时候,遇到不少奇怪的问题,这部分内容又很难依靠 Google 和 StackOverflow 来解决,还好找到了交流的 QQ 群,以及群中成员的交流心得,才算完成了这次尝试。
参与的微信小游戏 QQ 群:
参考的文章:
其它相关链接
请先阅读:
目前,Cocos、Egret、Laya 已经完成了自身引擎及其工具对小游戏的适配和支持,访问对应的官方文档可以更快地接入小游戏的开发
你的独立游戏第一站
原文地址:, 感谢原作者分享。
您可能感兴趣的代码【微信小程序】在开发者工具中能正常请求后台,而在正式手机上却不行。
[问题点数:60分,结帖人qq_]
【微信小程序】在开发者工具中能正常请求后台,而在正式手机上却不行。
[问题点数:60分,结帖人qq_]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|}

我要回帖

更多关于 微信web开发者工具 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信