2013-08-21 32 views
8

sto sviluppando un'applicazione utilizzando l'interfaccia javascript/mobile-jquery per la piattaforma phonegap. Ora ho visto così tanti esempi sul web che provano a copiare negli appunti e sfortunatamente nessuno di loro ha funzionato per me. Non mi interessa che funzioni nel browser, a patto che funzioni una volta convertito dal divario telefonico. Sono felice.Copia negli appunti con javascript per PhoneGap

Ho provato a utilizzare zeroclipboard, non ha eseguito l'allenamento, ho provato a utilizzare il gestore di appunti non è riuscito a farlo funzionare. Ho provato molti altri esempi che ho trovato qui su StackOverflow tra cui Google Search e che ancora non ha funzionato, ecco un esempio di cose che ho provato:

window.plugins.clipboardManager.copy(
       "the text to copy", 
       function(r){alert("copy is successful")}, 
       function(e){alert(e)} 
      ); 

Ho incluso il file js:

<script src="src/clipboardmanager.js"></script> 

e ho anche il file java nella struttura di cartelle come questo: src\com\saatcioglu\phonegap\clipboardmanager\ClipboardManagerPlugin.java

da quello che ho letto ho bisogno di includere un file xml per questo lavoro, ma per la vita di me non ho potuto trova quel file XML ovunque.

Qualsiasi aiuto è più apprezzato.

Nota: La mia applicazione richiederà nessuna autorizzazione come fotocamera, gps, ecc ...

EDIT:

Un altro esempio che ho provato era:

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'); 
} 

Questo ha funzionato in IE, ma non in PhoneGap.

EDIT:

Ecco l'html/javascript sto usando:

<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> 

Nella mia cartella principale ho:

  1. una cartella chiamata jQuery che ha script jQuery in Là.
  2. una cartella chiamata res che ha una cartella chiamata XML, che ha un file chiamato plugin.xml
  3. una cartella chiamata src, che ha una cartella denominata com, che ha una cartella denominata Saatcioglu, che ha una cartella chiamata PhoneGap , che ha una cartella chiamata clipboardmanager, che ha un file chiamato ClipboardManagerPlugin.java.
  4. test.html
  5. clipboardmanager.js

Contenuto del plugin.xml

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

Che cosa ho fatto di male?

+0

lui dice che sta già utilizzando Cordova (aka phonogap) – dandavis

risposta

6

Primo: l'opzione IE non funziona su Android poiché PhoneGap utilizza Webkit (si pensi a Safari e/o Chrome).

Comunque ...

quel file che state cercando (nel "/ res/xml /" sottodirectory della directory del progetto) è chiamato

config.xml 

Lì, dovete dire PhoneGap per caricare il plugin al momento della compilazione del genere ...

<gap:plugin name="whatever" value="com.example.whatever" /> 

Se non lo fai, PhoneGap semplicemente non includere il plug-in fase di compilazione, con conseguente il fatto che il plugin non funziona (dal momento che doesn' Esistono nell'app compilata).

non ho ancora usato il ClipboardManagerPlugin, ma secondo la documentazione dovrebbe andare un po 'come questo:

<gap:plugin name="clipboardmanager" value="com.saatcioglu.phonegap.clipboardmanager.ClipboardManagerPlugin.ClipboardManagerPlugin" /> 

Si prega di notare che si dovrebbe verificare la versione di PhoneGap che si sta utilizzando e se il plugin è compatibile con esso. Nel caso non te ne accorgessi: non tutti i plugin sono stati aggiornati per funzionare con PhoneGap 3.x ancora. Per citare il readme at Github (https://build.phonegap.com/docs/plugins-using): ". A meno che esplicitamente dichiarato, la maggior parte di questi plugin sarà non lavoro con Cordova/PhoneGap 3.x.x out of the box Avranno bisogno di aggiornamento prima di poter essere utilizzati tramite l'interfaccia plugin add"

+0

Grazie per la risposta, quindi da quello che dici questo dovrebbe funzionare anche nel browser Chrome allora, corretto? Sto cercando di farlo funzionare prima nel browser, ma senza fortuna. Sto modificando la mia domanda ora per mostrare esattamente quello che sto facendo, potresti per favore esaminarlo e farmi sapere del mio errore? – Bojan

+0

è completamente aggiornato ora – Bojan

+0

@Bagzli Erm, probabilmente è un errore di velocità del tuo, ma non stai caricando il phonegap.js nel tuo EDIT in questo modo: * "" *. Inoltre, non puoi testare la funzionalità di PhoneGap che si rivolge ai dispositivi nel tuo normale browser. Avrai bisogno di un dispositivo in dev-mode, o dovrai usare gli emulatori di Android SDK. –

5

e-sushi's instructions non ha funzionato per me.

Per ottenere il plugin corsa ho usato il seguente comando:

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

e quindi aggiungendo il seguente comando nel JS:

cordova.plugins.clipboard.copy(text); 
Problemi correlati