【问题标题】:Javascript / Clipboard API / Safari iOS / NotAllowedError MessageJavascript / 剪贴板 API / Safari iOS / NotAllowedError 消息
【发布时间】:2020-06-11 15:01:12
【问题描述】:

我有一个小问题。当我按下一个使用 ajax 请求将数据获取到剪贴板的按钮时,我想在我的 iOS 设备上的剪贴板上添加一个文本。

使用我桌面上的浏览器和我的 Android 设备,它运行良好,但使用我的 iOS 设备时出现问题。

$.ajax({
            type: "GET",
            url: "missing_string.php",
            data: getAttributes($(this)),
            success: function(data) {
                if (navigator.clipboard) {
                    navigator.clipboard.writeText(data)
                        .then(() => {
                            alert("SUCCESS");
                        })
                        .catch(err => {
                            alert(err);
                            console.log('Something went wrong', err);
                        });

所以我收到以下错误消息:

NotAllowedError:当前上下文中用户代理或平台不允许该请求,可能是因为用户拒绝了权限。

如何将我的文本添加到剪贴板?我使用 iOS 13.5 和 13.4 应该支持剪贴板 API。

【问题讨论】:

    标签: javascript ios api safari clipboard


    【解决方案1】:

    https://webkit.org/blog/10247/new-webkit-features-in-safari-13-1/

    Async Clipboard API
    WebKit brings the Async Clipboard API to this release of Safari...
    
    you should read it
    

    TLDR: 该实现可通过navigator.clipboard API 获得,该 API 必须在用户事件中调用

    您正试图通过 API 调用而不是在用户交互的上下文中复制到剪贴板。这是不允许的。

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 2017-03-02
      • 2021-03-29
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多