2013-08-21 13 views
8

Zajmuję się tworzeniem aplikacji przy użyciu interfejsu javascript/mobile-jquery dla platformy phonegap. Teraz widziałem tak wiele przykładów w sieci próbujących skopiować do schowka i niestety żaden z nich nie działał dla mnie. Nie interesuje mnie to, że jest funkcjonalna w przeglądarce, o ile działa po przekonwertowaniu przez lukę telefoniczną, jestem szczęśliwy.Skopiuj do schowka za pomocą javascript dla phonegap

Próbowałem używać zeroclipboard, to nie trening, próbowałem przy użyciu menedżera schowka nie mógł go uruchomić. Próbowałem wiele innych przykładów, które znalazłem tutaj na stackoverflow w tym wyszukiwarki Google, a oni nadal nie działa, tutaj jest przykładem rzeczy próbowałem:

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

mam włączone pliku JS:

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

i mam również plik java w strukturze folderów jak to: src\com\saatcioglu\phonegap\clipboardmanager\ClipboardManagerPlugin.java

z tego co czytałem muszę to plik xml dla tej pracy, ale dla życia mnie nie mogłem znajdź plik XML w dowolnym miejscu.

Każda pomoc jest najbardziej ceniona.

Uwaga: Moja aplikacja wymaga żadnych uprawnień, takich jak aparat fotograficzny, GPS, etc ...

EDIT:

Innym przykładem Próbowałem było:

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

To działało w IE, ale nie w Phonegap.

EDIT:

Oto html/javascript Używam:

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

W moim folderze głównym mam:

  1. folder o nazwie jQuery, który posiada skrypty w jquery tam.
  2. folder o nazwie res który ma folder o nazwie xml, który posiada plik nazwie plugin.xml
  3. folder o nazwie src, które ma folder o nazwie com, która ma folder o nazwie saatcioglu, która ma folder o nazwie PhoneGap , który ma folder o nazwie clipboardmanager, który ma plik o nazwie ClipboardManagerPlugin.java.
  4. test.html
  5. clipboardmanager.js

Zawartość plugin.xml

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

Co zrobiłem źle?

+0

mówi, że już przy użyciu Cordova (aka phonogap) – dandavis

Odpowiedz

6

Po pierwsze: opcja IE nie działa w systemie Android, ponieważ PhoneGap używa Webkit (pomyśl: Safari i/lub Chrome).

W każdym razie ...

ten plik szukasz (w „/ res/xml /” podkatalogu katalogu Twojego projektu) nazywa

config.xml 

tam, trzeba powiedzieć PhoneGap załadować wtyczki w czasie kompilacji tak ...

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

Jeśli nie to zrobić, po prostu nie będzie PhoneGap włączenia wtyczki w czasie kompilacji, wynikające z faktu, że wtyczki nie będą działać (bo nie robi” t istnieją w skompilowanym apk).

I nie był używany ClipboardManagerPlugin jeszcze, ale zgodnie z docs należy przejść trochę tak:

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

Należy pamiętać, że należy sprawdzić wersję PhoneGap używasz i czy wtyczka jest kompatybilny z tym. Na wypadek, gdybyś tego nie wiedział: nie wszystkie wtyczki zostały zaktualizowane do pracy z PhoneGap 3.x. Cytując readme at Github (https://build.phonegap.com/docs/plugins-using): . „O ile wyraźnie wspomniano, większość z tych wtyczek będzie nie praca z Cordova/PhoneGap 3.x.x wyjęciu z pudełka będą one wymagają aktualizacji, zanim będą mogły być wykorzystane przez interfejs plugin add

+0

Dziękuję dla odpowiedzi, więc z tego co powiesz, to powinno również działać w przeglądarce Chrome, prawda? Próbuję go uruchomić najpierw w przeglądarce, ale bez powodzenia. Redaguję teraz moje pytanie, aby pokazać dokładnie to, co robię, czy mógłbyś przejrzeć to i dać znać o moim błędzie? – Bojan

+0

jest teraz w pełni zaktualizowany – Bojan

+0

@Bagzli Erm, prawdopodobnie jest to błąd szybkości twojego, ale nie ładujesz pliku phonegap.js w EDYCIE tak: * "" *. Ponadto nie można przetestować funkcji phonegap, która jest kierowana na urządzenia w zwykłej przeglądarce. Będziesz potrzebował albo urządzenia w trybie deweloperskim, albo będziesz musiał użyć emulatorów Android SDK. –

5

e-sushi's instructions nie działa dla mnie.

Aby uzyskać przebieg wtyczki użyłem następującego polecenia:

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

a następnie dodając następującą komendę w JS:

cordova.plugins.clipboard.copy(text); 
Powiązane problemy