小程序
小游戏
企业微信
微信支付
扫描小程序码分享
editor组件在华为鸿蒙系统上长按弹出粘贴和全选按钮,手离开后弹出的粘贴和全选就消失,无法进行粘贴和全选操作。在苹果系统上正常
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
<view class="ql-container" style="height: 300rpx">
<editor id="editor" class="ql-editor"></editor>
</view>
长按出现粘贴弹窗,但是手移开就会消失,苹果系统没有这个问题
引用别人的
<view class="editor-box-content" bind:longpress='longpress'>
<editor id="editor" class="ql-editor" name="{{name}}" placeholder="{{placeholder}}" bind:ready="_onEditorReady" bind:input="Content" show-img-toolbar show-img-resize="{{true}}"></editor>
给editor包一层 view 然后给view添加longpress事件 longpress事件可以什么都不操作 完美解决
对于长按弹出菜单后手离开后菜单消失的问题,可能是由于你没有处理长按结束后菜单隐藏的逻辑。你可以尝试在`editor`组件的`bindblur`事件中实现隐藏菜单的逻辑,当编辑器失去焦点后,隐藏菜单即可。
具体实现如下:
1. 在`editor`组件上添加`bindlongtap`和`bindblur`事件。
2. 在组件的对应js文件中实现`showMenu`函数和`hideMenu`函数,如下所示:
// 长按事件回调,显示菜单
showMenu: function() {
const that = this;
wx.showActionSheet({
itemList: ['全选', '粘贴'],
success: function(res) {
if(res.tapIndex === 0) {
that.editorCtx.selectAll();
} else if(res.tapIndex === 1) {
wx.getClipboardData({
success: function (res) {
that.editorCtx.insertText({
text: res.data
})
}
},
owMenu`函数中,我们使用`wx.showActionSheet` API弹出菜单,当用户选择了“全选”或“粘贴”后,我们调用`editorCtx.insertText()`方法实现全选和粘贴。
通过以上的实现方式,你可以解决长按弹出菜单后手离开菜单消失的问题。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。
<view class="ql-container" style="height: 300rpx">
<editor id="editor" class="ql-editor"></editor>
</view>
长按出现粘贴弹窗,但是手移开就会消失,苹果系统没有这个问题
在空白的区域长按,松开就会马上失去焦点
安卓系统都会有这个问题
引用别人的
<view class="editor-box-content" bind:longpress='longpress'>
<editor id="editor" class="ql-editor" name="{{name}}" placeholder="{{placeholder}}" bind:ready="_onEditorReady" bind:input="Content" show-img-toolbar show-img-resize="{{true}}"></editor>
</view>
给editor包一层 view 然后给view添加longpress事件 longpress事件可以什么都不操作 完美解决
对于长按弹出菜单后手离开后菜单消失的问题,可能是由于你没有处理长按结束后菜单隐藏的逻辑。你可以尝试在`editor`组件的`bindblur`事件中实现隐藏菜单的逻辑,当编辑器失去焦点后,隐藏菜单即可。
具体实现如下:
1. 在`editor`组件上添加`bindlongtap`和`bindblur`事件。
2. 在组件的对应js文件中实现`showMenu`函数和`hideMenu`函数,如下所示:
// 长按事件回调,显示菜单
showMenu: function() {
const that = this;
wx.showActionSheet({
itemList: ['全选', '粘贴'],
success: function(res) {
if(res.tapIndex === 0) {
that.editorCtx.selectAll();
} else if(res.tapIndex === 1) {
wx.getClipboardData({
success: function (res) {
that.editorCtx.insertText({
text: res.data
})
}
})
}
}
})
},
owMenu`函数中,我们使用`wx.showActionSheet` API弹出菜单,当用户选择了“全选”或“粘贴”后,我们调用`editorCtx.insertText()`方法实现全选和粘贴。
通过以上的实现方式,你可以解决长按弹出菜单后手离开菜单消失的问题。