![](/img/trans.png)
[英]Copy to Clipboard Functionality in Javascript/PhoneGap Application
[英]Copy to Clipboard with javascript for phonegap
我正在使用javascript / mobile-jquery接口为phonegap平台开发一个应用程序。 现在我在网上看到了很多试图复制到剪贴板的例子,不幸的是它们都没有为我工作。 我对浏览器中的这个功能不感兴趣,只要它通过电话间隙转换后就能正常工作我很高兴。
我曾尝试使用zeroclipboard,它没有锻炼,我试过使用剪贴板管理器无法让它工作。 我已经尝试了很多其他的例子,我在stackoverflow上找到了这些例子,包括google搜索,但它们仍然无法正常工作,这是我尝试过的一个例子:
window.plugins.clipboardManager.copy(
"the text to copy",
function(r){alert("copy is successful")},
function(e){alert(e)}
);
我已经包含了js文件:
<script src="src/clipboardmanager.js"></script>
我在文件夹结构中也有java文件: src\\com\\saatcioglu\\phonegap\\clipboardmanager\\ClipboardManagerPlugin.java
从我读过的内容来看,我需要包含一个xml文件才能正常工作,但就我而言,我无法在任何地方找到该XML文件。
任何帮助都非常感谢。
注意:我的应用程序不需要任何权限,如相机,GPS等...
编辑:
我试过的另一个例子是:
function select_all(obj) {
var text_val=eval(obj);
text_val.focus();
text_val.select();
if (!document.all) return; // IE only
r = text_val.createTextRange();
r.execCommand('copy');
}
这适用于IE,但不适用于Phonegap。
编辑:
这是我正在使用的html / javascript:
<html>
<head>
<title>Test</title>
<link rel="stylesheet" href="jquery/jquery.mobile-1.3.1.min.css" />
<script src="jquery/jquery-1.9.1.min.js"></script>
<script src="jquery/jquery.mobile-1.3.1.min.js"></script>
<script src="clipboardmanager.js"></script>
<script>
var cbm = new window.plugins.clipboardManager;
function main(textMessage)
{
//Some Code before this (calculations)
cbm.copy(
"Success!!!",
function(r){alert("copy is successful")},
function(e){alert(e)}
);
}
</script>
</head>
<body>
<div data-role="page" id="main" name="main">
<div data-role="header">
<h1>Test</h1>
</div><!-- /header -->
<div data-role="content">
<form action="javascript:main(encryptedMessage.value);">
Message to be Copied:
<textarea id="encryptedMessage" name="encryptedName" rows="6" style="width:99%;"></textarea>
<input type="submit" value="Encrypt" />
</form>
</div>
</div>
</body>
</html>
在我的根文件夹中,我有:
plugin.xml的内容
<?xml version="1.0" encoding="utf-8"?>
<plugins>
<gap:plugin name="clipboardmanager" value="com.saatcioglu.phonegap.clipboardmanager.ClipboardManagerPlugin.ClipboardManagerPlugin" />
</plugins>
我做错了什么?
首先:IE选项不适用于Android,因为PhoneGap使用Webkit(想想:Safari和/或Chrome)。
无论如何...
您要查找的文件(在项目目录的“/ res / xml /”子目录中)被调用
config.xml
在那里,你必须告诉phonegap在编译时加载插件,就像这样......
<gap:plugin name="whatever" value="com.example.whatever" />
如果你不这样做,phonegap将不会在编译时包含插件,导致你的插件无法工作(因为它在编译的apk中不存在)。
我还没有使用过ClipboardManagerPlugin,但根据文档,它应该有点像这样:
<gap:plugin name="clipboardmanager" value="com.saatcioglu.phonegap.clipboardmanager.ClipboardManagerPlugin.ClipboardManagerPlugin" />
请注意,您应该检查您正在使用的PhoneGap版本以及该插件是否兼容。 万一你不知道它:并非所有插件都已更新,以便与PhoneGap 3.x一起使用。 引用Github上的自述文件(https://build.phonegap.com/docs/plugins-using) : “除非明确说明,否则大多数这些插件都不适用于Cordova / PhoneGap 3.xx开箱即用。他们将需要更新才能通过plugin add
界面使用它们。“
e-sushi的说明对我来说并不适用。
为了让插件运行,我使用了以下命令:
phonegap local plugin add https://github.com/VersoSolutions/CordovaClipboard
然后在JS中添加以下命令:
cordova.plugins.clipboard.copy(text);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.