9

phonegap プラットフォーム用の javascript/mobile-jquery インターフェイスを使用してアプリを開発しています。現在、ウェブ上でクリップボードにコピーしようとしている非常に多くの例を見てきましたが、残念ながらどれもうまくいきませんでした。これがブラウザーで機能することに興味はありませんが、電話ギャップによって変換されると機能する限り、私は満足しています。

zeroclipboard を使用してみましたが、うまくいきませんでした。クリップボード マネージャーを使用してみましたが、動作しませんでした。Google検索を含む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. plugin.xml というファイルを含む xml というフォルダーを持つ res というフォルダー
  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>

私は何を間違えましたか?

4

2 に答える 2

6

まず第一に、PhoneGap は Webkit (Safari や Chrome など) を使用するため、IE オプションは Android では機能しません。

ともかく...

探しているファイル (プロジェクトのディレクトリの「/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 で動作するように更新されているわけではありません。Githubreadme を引用する( https://build.phonegap.com/docs/plugins-using ) :インターフェイス経由で使用するには、更新する必要があります。」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 に答える