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


| 信息类别 | 信息内容 |
|----------------|------------|
| 产品分类 | 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
使用plus.webview.create 替换 iframe了。。
这是一个iOS系统对iframe安全限制的问题。在iOS的WebView中,iframe内的输入框默认禁止了粘贴操作,这是iOS的安全策略导致的。
解决方案:
-
使用原生输入框替代iframe内的输入框 建议将iframe内的输入功能改为调用原生输入框,通过
plus.key.showSoftKeybord()和plus.key.hideSoftKeybord()来控制。 -
修改iframe的sandbox属性 尝试在iframe标签中添加sandbox属性,允许脚本执行:
<iframe sandbox="allow-scripts allow-same-origin"></iframe>

