【问题标题】:Copy to Clipboard with javascript for phonegap使用 javascript 复制到剪贴板以进行 phonegap
【发布时间】:2014-02-22 04:15:34
【问题描述】:

我正在为 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. test.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>

我做错了什么?

【问题讨论】:

  • 他说他已经在使用 cordova(又名 phonogap)

标签: javascript cordova


【解决方案1】:

首先:该 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 一起使用。引用自述文件 at Github (https://build.phonegap.com/docs/plugins-using)“除非明确声明,这些插件中的大多数将与 Cordova/PhoneGap 3.x.x 一起工作。他们需要更新才能通过plugin add 接口使用。"

【讨论】:

  • 感谢您的回复,所以从您所说的情况来看,这也应该在 chrome 浏览器中工作,对吗?我试图让它先在浏览器中工作,但没有运气。我现在正在编辑我的问题,以准确显示我在做什么,请您检查一下并告诉我我的错误吗?
  • @Bagzli Erm,这可能是你的速度错误,但你没有像这样在编辑中加载 phonegap.js:"".此外,您无法在常规浏览器中测试以设备为目标的 phonegap 功能。您将需要一个处于开发模式的设备,或者您需要使用 Android SDK 模拟器。
  • 好吧,我尝试在 phonegap 中部署它并遇到了问题,我无法为黑莓提供 src 文件夹,因此无法编译。我只有一部黑莓手机来测试这个,所以我什至不知道这是否有效。你碰巧知道我可以用来复制到剪贴板的任何其他解决方案吗?
  • @Bagzli 好吧,如果您还没有安装相关的 SDK 文件,您想如何为黑莓编写应用程序?那根本行不通!在浪费时间之前,您可能需要检查您是否完全安装了 SDK,以及针对设备系统所需的所有文件。 (注意:在 Windows 操作系统上安装 SDK 时,SDK 会在本地安装所需的 Blackberry 文件。Android 和 iPhone 将更难配置以在 Windows 上进行开发。) Re to your "other solution" 请求:除了原生应用程序开发和 phonegap,我不知道如何编写代码。
  • @Bagzli 当然!这就是为什么你首先要使用phonegap。 Phonegap 提供了一个“包装器”,使您能够编写 HTML/CSS/JS 代码并通过 phonegap.js 使用设备原生功能(如 GPS、振动等)。当您的 phonegap 应用程序在黑莓上运行并且您想要编译相同的应用程序以在 android 上运行时,您只需在编译期间以 android 为目标...但您不必更改应用程序的一些 HTML/CSS/JS 代码.将 phonegap 视为您的 HTML/CSS/JS 和(支持的)设备的本机设备功能之间的桥梁。相同的代码...在编译期间以其他设备为目标。完成。
【解决方案2】:

e-sushi's instructions 不太适合我。

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

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

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

cordova.plugins.clipboard.copy(text);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多