xLsDg
xLsDg
  • 发布:2016-09-18 09:46
  • 更新:2017-03-31 13:33
  • 阅读:6198

iOS10 剪贴板复制报错

分类:Native.js

//获取剪切板
var UIPasteboard = plus.ios.importClass("UIPasteboard");
var generalPasteboard = UIPasteboard.generalPasteboard();
// 设置文本内容:
generalPasteboard.setValueforPasteboardType("testValue", "public.utf8-plain-text");

报错内容:

generalPasteboard.setValueforPasteboardType undefined

2016-09-18 09:46 负责人:无 分享
已邀请:

最佳回复

DCloud_IOS_XTY

DCloud_IOS_XTY

可以这么写

 generalPasteboard.plusCallMethod({setValue:"testValue", forPasteboardType:"public.utf8-plain-text"});  
 generalPasteboard.plusCallMethod({valueForPasteboardType:"public.utf8-plain-text"});
  • wenju

    可行 妥妥的

    2016-09-27 12:02

  • uniapp视频教程

    这样写ios9能兼容吗

    2016-09-29 15:04

  • DCloud_IOS_XTY

    可以兼容,这个是临时写法更新到最新版后原来的也发也支持

    2016-09-29 18:12

小云菜

小云菜 - 相关代码及分享在http://www.cnblogs.com/phillyx

如果要实现应用切换到后台,自动侦听循环获取剪切板数据,android是可以的ios不行。

由于iOS系统极安全防护限制,当应用切换到后台时,系统默认屏蔽剪切版接口,默认获取到的数据为空;当应用切换到前台时,才能访问剪切版,所以需要每次在其他地方复制内容后需要将应用切换到前台

/**  
 * @description 获取剪切板内容    
 */  
function getClipbordText() {  
    if(!window.plus) return;  
    if(mui.os.android) {  
        var Context = plus.android.importClass("android.content.Context");  
        var main = plus.android.runtimeMainActivity();  
        var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);  
        return plus.android.invoke(clip, "getText");  
    } else {  
        var UIPasteboard = plus.ios.importClass("UIPasteboard");  
        var generalPasteboard = UIPasteboard.generalPasteboard();  
        // 设置/获取文本内容:  
        //generalPasteboard.setValueforPasteboardType("testValue", "public.utf8-plain-text");  
        //var _val = generalPasteboard.valueForPasteboardType("public.utf8-plain-text");  
        //TODO 应用在后台的时候获取剪切版数据被系统限制了,只有在app内才能访问接口  
        var _val=generalPasteboard.plusCallMethod({valueForPasteboardType:"public.utf8-plain-text"});  
        console.log("ios复制返回的数据是:",_val);   
        return _val || '';  
    }  
}
4***@qq.com

4***@qq.com

我发行流应用的话 var generalPasteboard = UIPasteboard.generalPasteboard(); 这一句 还是有问题

  • 付楚

    我现在也是遇到了这个问题,想知道你是怎么解决的?

    2018-03-07 10:30

  • 5***@qq.com

    同问

    2018-10-26 00:30

该问题目前已经被锁定, 无法添加新回复