9

我正在为 phonegap 平台开发一个使用 javascript/mobile-jquery 接口的应用程序。现在我在网上看到了很多试图复制到剪贴板的例子,不幸的是它们都不适合我。我对它在浏览器中的功能不感兴趣,只要它一旦通过电话间隙转换就可以工作,我很高兴。

我试过使用 zeroclipboard,它没有锻炼,我试过使用剪贴板管理器无法让它工作。我尝试了许多其他示例,这些示例是我在 stackoverflow 上找到的,包括谷歌搜索,但它们仍然无法正常工作,这是我尝试过的示例:

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>

在我的根文件夹中,我有:

  1. 一个名为 jquery 的文件夹,其中包含 jquery 脚本。
  2. 一个名为 res 的文件夹,其中有一个名为 xml 的文件夹,其中有一个名为 plugin.xml 的文件
  3. 一个叫做 src 的文件夹有一个叫做 com 的文件夹,它有一个叫做 saatcioglu 的文件夹,它有一个叫做 phonegap 的文件夹,它有一个叫做 clipboardmanager 的文件夹,它有一个叫做 ClipboardManagerPlugin.java 的文件。
  4. 测试.html
  5. 剪贴板管理器.js

plugin.xml 的内容

<?xml version="1.0" encoding="utf-8"?>
<plugins>
    <gap:plugin name="clipboardmanager" value="com.saatcioglu.phonegap.clipboardmanager.ClipboardManagerPlugin.ClipboardManagerPlugin" />
</plugins>

我做错了什么?

4

2 回答 2

6

首先:该 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界面使用。”

于 2013-08-22T23:07:44.180 回答
5

e-sushi 的说明对我不太适用。

为了让插件运行,我使用了以下命令:

phonegap local plugin add https://github.com/VersoSolutions/CordovaClipboard

然后在JS中添加以下命令:

cordova.plugins.clipboard.copy(text);
于 2014-02-14T15:49:15.060 回答