uni-app ios设备iframe里的输入框无法粘贴内容

uni-app ios设备iframe里的输入框无法粘贴内容

示例代码:

本地index.html代码

var w = plus.webview.create('http://www.qq.com'); // 假设为qq
w.show(); // 显示窗口  

http://www.qq.com里底部tabs菜单打开其他iframe,比如其中之一iframe链接为http://www.baidu.com,那么在baidu里的输入框,ios设备无法粘贴内容。安卓设备正常。


## 操作步骤:


同代码示例

预期结果:

ios设备iframe里的输入框可以粘贴内容


## 实际结果:


ios设备iframe里的输入框无法粘贴内容

bug描述:

项目由html5+打包成app,通过本地index.html里打开一个webview窗口,这个webview打开的是一个h5链接,链接里有底部tabs,tabs通过iframe打开其他第三方链接。

第1张图:有iframe的输入框无法粘贴内容.png
第2张图:无iframe的输入框可以粘贴内容.png

有iframe的输入框无法粘贴内容.png
无iframe的输入框可以粘贴内容.png


| 信息类别       | 信息内容   |
|----------------|------------|
| 产品分类       | uniapp/H5  |
| PC开发环境操作系统 | Windows    |
| PC开发环境操作系统版本号 | win10      |
| HBuilderX类型  | 正式       |
| HBuilderX版本号 | 3.2.12     |
| 浏览器平台     | 手机系统浏览器 |
| 浏览器版本     | h5+自带的  |
| 项目创建方式   | HBuilderX  |

更多关于uni-app ios设备iframe里的输入框无法粘贴内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

哈哈

更多关于uni-app ios设备iframe里的输入框无法粘贴内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html


使用plus.webview.create 替换 iframe了。。

这是一个iOS系统对iframe安全限制的问题。在iOS的WebView中,iframe内的输入框默认禁止了粘贴操作,这是iOS的安全策略导致的。

解决方案:

  1. 使用原生输入框替代iframe内的输入框 建议将iframe内的输入功能改为调用原生输入框,通过plus.key.showSoftKeybord()plus.key.hideSoftKeybord()来控制。

  2. 修改iframe的sandbox属性 尝试在iframe标签中添加sandbox属性,允许脚本执行:

    <iframe sandbox="allow-scripts allow-same-origin"></iframe>
回到顶部