有个需求,需要点击按钮复制一个label中的内容,需要在全平台实现,有什么方法可以复制吗?很急
我也碰到这个需求了,请问你解决了么?有相关的插件实现么?
找了许久没找到全平台的都是要调用各个平台的,请问解决了么?
ios android 单写吧!
兄弟你的问题解决了么,我的是单独写的,可是只能做到这个app之内复制粘贴
怎么复制呢
又看到这个帖子浮上岸,特来填坑
//网页
var save = function (e)
{
e.clipboardData.setData(‘text/plain’, this.data.OrderNum);
e.preventDefault();
}.bind(this);
document.addEventListener(‘copy’, save);
document.execCommand(‘copy’);
document.removeEventListener(‘copy’, save);
android:
String str = "copyToClipboard in " + text;
System.out.println(text);
try {
final ClipboardManager clipboard = (ClipboardManager)myContext.getSystemService(myContext.CLIPBOARD_SERVICE);
ClipData textCd = ClipData.newPlainText("data", text);
clipboard.setPrimaryClip(textCd);
System.out.println("copyToClipboard in1");
} catch (Exception e) {
e.printStackTrace();
}
ios:
charp=(char)content.data();
NSString *nsMessage= [[NSString alloc] initWithCString:p encoding:NSUTF8StringEncoding];
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
pasteboard.string = nsMessage;
已用,有效!
兄弟你的content.data(),是什么东西,这个是我们传入的字符串么,我们传入的东西有什么格式要求么
std::string content
用安卓自带的方法和ios自带的剪贴板方法就行了,百度搜的就可用,你在cocos用js调一下就好了
//网页
var save = function (e)
{
e.clipboardData.setData(‘text/plain’, this.data.OrderNum);
e.preventDefault();
}.bind(this);
document.addEventListener(‘copy’, save);
document.execCommand(‘copy’);
document.removeEventListener(‘copy’, save);
我用微信打开,安卓的没问题,IOS的复制不出来。请问如何解决了吗
求问 怎么调用?
//oc 层
- (void)copyClipboard:(NSString *)copiedString{
UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard];
NSLog(@“第一个复制信息------:%@”,appPasteBoard.string);
appPasteBoard.persistent = YES;
NSString *pasteStr =copiedString;
[appPasteBoard setString:pasteStr];
NSLog(@“第一个复制信息------:%@”,appPasteBoard.string);
// UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:NSLocalizedString(@“完成复制”,nil),nil] message:nil delegate:nil cancelButtonTitle:NSLocalizedString(@“OK”,nil) otherButtonTitles:nil];
// [alertview show];
}
java 层
public static void CopyStrtoClipboard( String str) {
final String str_Roomid = str;
activty.runOnUiThread(new Runnable() {
@Override
public void run() {
ClipboardManager cm = (ClipboardManager) Cocos2dxHelper.getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
// 将文本内容放到系统剪贴板里。
cm.setText(str_Roomid);
}
});
}
web端目前无法达到全平台支持
可以的,我已经搞定了,在论坛里找到了一段代码,如下:
webCopyString: function(str){
var input = str;
const el = document.createElement(‘textarea’);
el.value = input;
el.setAttribute(‘readonly’, ‘’);
el.style.contain = ‘strict’;
el.style.position = ‘absolute’;
el.style.left = ‘-9999px’;
el.style.fontSize = ‘12pt’; // Prevent zooming on iOS
const selection = getSelection();
var originalRange = false;
if (selection.rangeCount > 0) {
originalRange = selection.getRangeAt(0);
}
document.body.appendChild(el);
el.select();
el.selectionStart = 0;
el.selectionEnd = input.length;
var success = false;
try {
success = document.execCommand('copy');
} catch (err) {}
document.body.removeChild(el);
if (originalRange) {
selection.removeAllRanges();
selection.addRange(originalRange);
}
return success;
},
String str = "copyToClipboard in " + text;
System.out.println(text);
try {
final ClipboardManager clipboard = (ClipboardManager)myContext.getSystemService(myContext.CLIPBOARD_SERVICE);
ClipData textCd = ClipData.newPlainText("data", text);
clipboard.setPrimaryClip(textCd);
System.out.println("copyToClipboard in1");
} catch (Exception e) {
e.printStackTrace();
}
这个安卓的代码又不能在js里写,安卓里又放在哪里呢?没看懂
js 写一个与java 的交互,把你想传入的内容通过js传入到java