Reputation: 83
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
<?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
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