簡體   English   中英

使用javascript for phonegap復制到剪貼板

[英]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>

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

  1. 一個名為jquery的文件夾,里面有jquery腳本。
  2. 一個名為res的文件夾,它有一個名為xml的文件夾,它有一個名為plugin.xml的文件
  3. 一個名為src的文件夾,它有一個名為com的文件夾,它有一個名為saatcioglu的文件夾,它有一個名為phonegap的文件夾,它有一個名為clipboardmanager的文件夾,它有一個名為ClipboardManagerPlugin.java的文件。
  4. 的test.html
  5. clipboardmanager.js

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM