PhoneGap截图插件不适用于Android?

时间:2013-04-12 17:13:27

标签: android cordova phonegap-plugins phonegap-build

我目前使用的截图插件(插件版本2.0.0)用于phonegap android项目,插件返回一些错误,如

未捕获的TypeError:无法在file:///android_asset/www/index.html

调用undefined方法'saveScreenshot'

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>

我做错了什么人指导我。
感谢

修改


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>

修改-2
AndroidManifest.xml

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

1 个答案:

答案 0 :(得分:1)

这里遗漏了很多东西。您需要将screenshot.java文件添加到项目中,并在index.html中添加对screenshot.js的引用。您还需要提供以described here的形式写入本地存储的权限。