j***@gmail.com
j***@gmail.com
  • 发布:2017-03-10 14:51
  • 更新:2019-08-27 17:41
  • 阅读:2222

【报Bug】安卓 复制 剪贴板, 报错

分类:Native.js

详细问题描述
[内容]

重现步骤
[步骤]

var copyToClip = function(textValue) {  
                    if (mui.os.android) {  
                        var Context = plus.android.importClass("android.content.Context");  
                        var main = plus.android.runtimeMainActivity();  
                        var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);  
                        console.log(clip);  
                        console.log(main);  
                        plus.android.invoke(clip, textValue);  
//                      plus.android.invoke(clip, textValue, "I'm copy from Native.js");  
                    } else {  
                        var UIPasteboard = plus.ios.importClass("UIPasteboard");  
                        //这步会有异常因为UIPasteboard是不允许init的,init的问题会在新版中修改  
                        var generalPasteboard = UIPasteboard.generalPasteboard();  
                        // 设置/获取文本内容:  
                        generalPasteboard.setValueforPasteboardType(textValue, "public.utf8-plain-text");  
                    }  
                    mui.alert('复制成功!', '', function() {});  
                };

[结果] ```javascript
Uncaught Attempt to invoke virtual method 'java.lang.Class java.lang.reflect.Method.getReturnType()' on a null object reference;at android.content.ClipboardManager.1234556

[期望] 将文本成功复制到 剪贴板  

运行环境  
[系统版本] 安卓7.0 EMUI5.0 华为 P9  
[浏览器版本]  
[IDE版本] 8.0.2.201703061842  
[mui版本]   

附件  
[代码片段]
```javascript  
var copyToClip = function(textValue) {  
                    if (mui.os.android) {  
                        var Context = plus.android.importClass("android.content.Context");  
                        var main = plus.android.runtimeMainActivity();  
                        var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);  
                        console.log(clip);  
                        console.log(main);  
                        plus.android.invoke(clip, textValue);  
//                      plus.android.invoke(clip, textValue, "I'm copy from Native.js");  
                    } else {  
                        var UIPasteboard = plus.ios.importClass("UIPasteboard");  
                        var generalPasteboard = UIPasteboard.generalPasteboard();  
                        // 设置/获取文本内容:  
                        generalPasteboard.setValueforPasteboardType(textValue, "public.utf8-plain-text");  
                    }  
                    mui.alert('复制成功!', '', function() {});  
                };

[安装包]

联系方式
[QQ]
[电话]

2017-03-10 14:51 负责人:无 分享
已邀请:
j***@163.com

j***@163.com - 90IT女

传入的textValue为数字时会报这个,为字符串时是正常的.

[已删除]

[已删除]

大神,我也遇到这个错了,你怎么解决的?

  • j***@163.com

    把复制类型转到字符串就可以了

    2019-09-19 17:06

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