Seenu
Seenu

Reputation: 83

PhoneGap Screenshot plugin not working for Android?

I am currently used screenshot plugin (plugin version 2.0.0) for phonegap android project that plugin returns some error like

Uncaught TypeError: Cannot call method 'saveScreenshot' of undefined at file:///android_asset/www/index.html

Mycode:

 <script src="cordova-2.5.0.js"></script>
 <script src="js/jquery-1.8.1.min.js"></script>
 <script src="js/Screenshot.js"></script>
 <script>
  document.addEventListener("deviceready",onDeviceReady,false);
  function onDeviceReady() {
   $('#screen').click(function(){
   window.plugins.screenshot.saveScreenshot();
  });
 } 
</script>

 <button id="screen">ScreenSave</button>

what i am doing wrong anyone guide me.
Thanks

EDIT


Config.xml

        <?xml version="1.0" encoding="utf-8"?>
    <cordova>
      <!--
        access elements control the Android whitelist.
        Domains are assumed blocked unless set otherwise
         -->

      <access origin="http://127.0.0.1*"/>
      <!-- allow local pages -->

      <!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
      <!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
      <access origin=".*"/>

      <!-- <content src="http://mysite.com/myapp.html" /> for external pages -->
      <content src="index.html" />
      <log level="DEBUG"/>
      <preference name="useBrowserHistory" value="true" />
      <preference name="exit-on-suspend" value="false" />
      <plugins>
        <plugin name="App" value="org.apache.cordova.App"/>
        <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/>
        <plugin name="Device" value="org.apache.cordova.Device"/>
        <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/>
        <plugin name="Compass" value="org.apache.cordova.CompassListener"/>
        <plugin name="Media" value="org.apache.cordova.AudioHandler"/>
        <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/>
        <plugin name="Contacts" value="org.apache.cordova.ContactManager"/>
        <plugin name="File" value="org.apache.cordova.FileUtils"/>
        <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/>
        <plugin name="Notification" value="org.apache.cordova.Notification"/>
        <plugin name="Storage" value="org.apache.cordova.Storage"/>
        <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/>
        <plugin name="Capture" value="org.apache.cordova.Capture"/>
        <plugin name="Battery" value="org.apache.cordova.BatteryListener"/>
        <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/>
        <plugin name="Echo" value="org.apache.cordova.Echo" />
        <plugin name="Globalization" value="org.apache.cordova.Globalization"/>
        <plugin name="InAppBrowser" value="org.apache.cordova.InAppBrowser"/>
        <plugin name="Screenshot" value="org.apache.cordova.Screenshot"/>
      </plugins>
    </cordova>

EDIT-2
AndroidManifest.xml

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Upvotes: 1

Views: 1596

Answers (1)

Nishanth Nair
Nishanth Nair

Reputation: 2965

Quite a bit of things are missing here. You need to Add the screenshot.java file to your project and add reference to screenshot.js in your index.html. Also you need to provide permission to write to local storage as described here.

Upvotes: 1

Related Questions