如果要实现应用切换到后台,自动侦听循环获取剪切板数据,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 || '';
}
}
wenju
可行 妥妥的
2016-09-27 12:02
uniapp视频教程
这样写ios9能兼容吗
2016-09-29 15:04
DCloud_IOS_XTY
可以兼容,这个是临时写法更新到最新版后原来的也发也支持
2016-09-29 18:12