关于does not have a method xx to handle event "tap"我有话要说
前言
> 我正在对接微信小程序订阅消息功能,看了官方文档觉得挺简单的。于是踩坑开始了
###### 应该是这样简单的
```
wx.requestSubscribeMessage({
tmplIds: [''],
success (res) { }
})
```
###### 你直接调用会得到
`订阅失败 {errMsg: "requestSubscribeMessage:fail can only be invoked by user TAP gesture."}`
###### 根据这个错误,得到必须要用手动调用(这个要好好理解)。调整后你得到以下代码
```
<button open-type="openSetting" bindopensetting="openSettings">打开设置页</button>
这个按钮会直接打开授权设置页面,目前还不是你的业务范围(你会搜到的大部分答案)
第二种方式是这样绑定bindtap
<button >授权</button>
如果你也是用的uniAPP开发
methods: {
openSettings(){
wx.requestSubscribeMessage({
tmplIds: [''],
success (res) { }
})
}
}
```
###### 第一种方法,目前不需要,你需要的弹出订阅消息授权框
###### 于是方式二,你始终得到`Component "pages/index/home" does not have a method "openSettings" to handle event "tap".`

然后开始各种网上找答案

###### 这里我也把看到的一些答案汇总
1. bindtap=" openSettings " 是否前后有空格
2. js文件不需要包一层methods,组件形式需要包一层【这里我挪进去挪出来试,无用】
3. bindtap="这里的函数不要带参数直接写函数名";如果要传参数使用data-xxx的形式传递
4. 在js中没有定义方法
以上都没有解决我的问题
###### 回到最原始的时候,微信要求该方法必须是用户调用,于是机灵了一下,不用bindtap直接用click。得到了我想要的结果。
`<button @click="openSettings()">打开</button>`

###### 总结
这个功能很难吗?我还是觉得简单的,但是我却花了两个小时以上。原本半个小时不到就可以完成的功能
关于does not have a method xx to handle event "tap"我有话要说的更多相关文章
- Android webview js 调用java方法报错"Uncaught TypeError: Object [object Object] has no method xx
webview开发,在Android4.4下js调用java方法报错"Uncaught TypeError: Object [object Object] has no method,同样的 ...
- bind:tap="onLike" 中不能添加参数 及 dataset 传值
<view bind:tap="onLike({{id}})"></view> //Component "pages/book-detail/bo ...
- method.invoke()s
在框架中经常会会用到method.invoke()方法,用来执行某个的对象的目标方法.以前写代码用到反射时,总是获取先获取Method,然后传入对应的Class实例对象执行方法.然而前段时间研究inv ...
- [Angular] HostListener Method Arguments - Blocking Default Keyboard Behavior
We are going to see how to using method arguments for @HostListener. First, we can use HostListener ...
- iOS 运行时runtime控制私有变量以及私有方法
OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...
- 【原】iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)
OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...
- jQ1.5源码注释以及解读RE
jQ作为javascript的库( ▼-▼ ), 尽善尽美, 代码优美, 值得学习. 这一周平常上班没啥事也看jQ1.5的代码, 今天周六差不多看完了(Sizzle部分还没看), 重新看了一下, ...
- Backbone事件模块源码分析
事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说 ...
- Struts2 验证规则配置文件
1. Action级别校验命名格式: ActionClassName-validation.xml 2. Action中某个方法的校验命名格式: ActionClassName-ActionAlias ...
- jQuery1.4源码解读
来吧, 慢慢折腾吧 总结一下: jq1.4挺简单的, 正则写的不多, 看的都懂, 多写一些 三目写法到底要不要 特殊的地方的注释一定要有 /*! * jQuery JavaScript Library ...
随机推荐
- Composer: Command Not Found
I am using CentOS and had same problem. I changed /usr/local/bin/composer to /usr/bin/composer and i ...
- Qt/C++编写视频监控系统81-Onvif报警抓图和录像并回放
一.前言 视频监控系统中的图文警情模块,是通过Onvif协议的事件订阅拿到的,通过事件订阅后,设备的各种报警事件比如入侵报警/遮挡报警/越界报警/开关量报警等,触发后都会主动往订阅者发送,而且一般都是 ...
- findHomography()函数详解
indHomography: 计算多个二维点对之间的最优单映射变换矩阵 H(3行x3列) ,使用最小均方误差或者RANSAC方法 函数功能:找到两个平面之间的转换矩阵. Mat cv::findHom ...
- 即时通讯技术文集(第33期):IM开发综合技术合集(Part6) [共12篇]
为了更好地分类阅读 52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第33 期. [- 1 -] IM开发技术学习:揭秘微信朋友圈这种信息推流背后的系统设计 [链接 ...
- 【Java 温故而知新系列】基础知识-02 数据基本类型
1.Java基本数据类型 Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间. 基本数据类型 数值型:整数类型(byte,short,int,lon ...
- gRPC编译与字段编号的细节探讨
上次我们专门通过一个简单的HelloWorld示例来了解了gRPC的基本概念和使用方法.今天,我们将继续深入探讨gRPC,重点讨论一些在实际应用中需要特别注意的要点.实际上,gRPC的核心目标是简化远 ...
- DVWA靶场File Upload(文件上传) 漏洞所有级别通关教程及源码审计
文件上传 文件上传漏洞是由于对上传文件的内.类型没有做严格的过滤.检查,使得攻击者可以通过上传木马文件获取服务器的webshell文件 low 上传一个php文件,上传成功,并且可以在WWW\DVWA ...
- 《深入理解Mybatis原理》Mybatis中的缓存实现原理
一级缓存实现 什么是一级缓存? 为什么使用一级缓存? 每当我们使用MyBatis开启一次和数据库的会话,MyBatis会创建出一个SqlSession对象表示一次数据库会话. 在对数据库的一次会话中, ...
- ArrayBlockingQueue源码剖析
生产者-消费者ArrayBlockingQueue是一个实现了BlockingQueue接口的类,其可以很方便的实现生产者-消费者模式.用法如下: class Producer implements ...
- ClickHouse-4SQL参考
SQL参考 ClickHouse支持以下形式的查询: SELECT INSERT INTO CREATE ALTER 其他类型的查询 ClickHouse SQL 语句 语句表示可以使用 SQL 查询 ...