-
Creator 版本:3.3.0-3.3.2版本
-
目标平台:
-
详细报错信息,包含调用堆栈:
- 背景知识: 字节跳动有个添加桌面快捷方式的api,要求必须通过用户点击手势调用该api,即在Cocos Creator中制作一个简单UI,用户点击某个按钮,只要触发了OnTouchEnd或OnClick事件,即可调用字节的api,实现桌面快捷方式添加的功能。
- 错误描述:本人亲测Cocos Creator 3.3.0、3.3.1和3.3.2,三个版本的按钮点击事件,都不被字节跳动平台识别,并报出未检测到用户点击行为的bug。
- 错误解决方案之一:本人亲测,如果在Cocos Creator3D 1.2.0中,同样的按钮点击程序,同样的字节跳动api,能够成功被字节跳动平台检测到按钮点击事件的发生,能够正常添加桌面快捷方式。
- 重现方式:
- 制作一个按钮,并添加点击响应,代码如下:
private _btn_toDesktop: Button = null;
private _initComp() {
this._btn_toDesktop = this.node.getChildByName(‘btn_OK’).getComponent(Button);
this._btn_toDesktop.node.on(Button.EventType.CLICK, this._toDesktopButtonClick, this);
}
//窗口打开时,自动调用show函数.
public show() {
this._initComp();
}
private _toDesktopButtonClick(){
tt.addShortcut({
success: function (res) {
console.warn(‘添加快捷方式成功!’);
},
fail: function (res) {
console.warn(‘添加快捷方式失败:’+res.errMsg);
}
});
}
- 真机调试上述代码,Cocos Creator3D 1.2.0版本能正常运行(前提是能进白名单)。但是,Cocos Creator 3.3.0、3.3.1和3.3.2这三个版本,无一例外报出错误:addShortcut:fail must be invoked by user gesture。
-
之前哪个版本是正常的 :
-
手机型号 :
-
编辑器操作系统 :
-
编辑器之前是否有其它报错 :
cocos creator3.3.0中的UI截图:
字节开发者工具中的报错截图:
使用Cocos Creator3D 1.2.0进行同样代码测试的结果: