WebIntent Plugin - Class not found exception

14 posts, 1 answers
  1. Jonathan
    Jonathan avatar
    2 posts
    Member since:
    Jun 2013

    Posted 09 Jul 2013 Link to this post

    Hi everyone,

    I'm writing an android app with Icenium and I'm trying to use custom Phonegap Plugins, namely the WebIntent Plugin by Boris Smus (http://smus.com/android-phonegap-plugins/) to send an Email.

    This is my sendEmail function in Icenium:

    var sendEmail = function(){
        var extras = {};
        extras[window.plugins.webintent.EXTRA_SUBJECT] = "Subject";
        extras[window.plugins.webintent.EXTRA_TEXT] = "Body";
        window.plugins.webintent.startActivity({ 
          action: window.plugins.webintent.ACTION_SEND,
          type: 'text/plain', 
          extras: extras 
        }, 
        function(args) {
           console.log('Sucess! ');
           console.log(args);
        }, 
        function(args) {
          console.log('Failed to send email via Android Intent ');
          console.log(args);
        }
      );

    However, when I try to use it on my smartphone, it gives me a "Class not found" exception and the function above immediately calls the error callback, ie. console.log("Failed to send email via Android Intent").

    I suspect there is something wrong with my plugin.xml file but I'm not sure whats wrong.
    Does this mean that Phonegap/Cordova did not find the java file? 

    This is my plugin.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android"
        id="com.borismus.webintent"
        version="1.0.0">

        <engines>
            <engine name="cordova" version=">=2.7.0" />
        </engines>
        
        <name>WebIntent</name>

        <asset src="www/WebIntent.js" target="WebIntent.js" />

        <platform name="android">
            <source-file src="src/android/WebIntent.java" target-dir="src/com/borismus/webintent" />       
        </platform>

    </plugin>

    These are the plugin files:

    WebIntent.js | http://pastebin.com/TAdww94v
    WebIntent.java | http://pastebin.com/beCjkiUT

    I'm using the latest Icenium version with Phonegap/Cordova 2.7.0.


    Thanks for your replies!
  2. Answer
    Yavor Georgiev
    Admin
    Yavor Georgiev avatar
    982 posts

    Posted 09 Jul 2013 Link to this post

    Hi Jonathan,

     You need to add the following inside the android platform element of your plugin.xml:
    <config-file target="res/xml/config.xml" parent="plugins">
        <plugin name="WebIntent" value="com.borismus.webintent.WebIntent" />
    </config-file>

     This will tell Cordova what is the Java class that implements the plugin on the native side. Without it you will get a ClassNotFoundException.

    Regards,
    Yavor Georgiev
    Telerik

    Looking for tips & tricks directly from the Icenium team? Check out our blog!
    Missed our first webinar, watch it here.
    Share feedback and vote for features on our Feedback Portal.
  3. Jonathan
    Jonathan avatar
    2 posts
    Member since:
    Jun 2013

    Posted 09 Jul 2013 Link to this post

    Hello Yavor,

    thank you very much! My plugin.xml works now and so does my app :)

    One thing I'd like to see in Icenium is some way to debug java code of plugins, right now I'm building the app everytime and checking the logs in 'BlackDragon/Logs' to see what went wrong.

    Anyway, thank you, after some trouble at the beginning I'm beginning to love Icenium :)

    Regards, Jonathan
  4. Relez
    Relez avatar
    45 posts
    Member since:
    Jan 2013

    Posted 12 Jul 2013 Link to this post

    Hello there, I have tried to create the plugin structure by myself but when I am going to run the app on the device, it fails, here is what I did:

    1. First I created a folder named: webintent.
    2. Then I copied the WebIntent.js file to webintent/www folder.
    3. Next, I copied the WebIntent.java file to webintent/src/android folder.
    4. Then, I created the webintent/plugin.xml file containing this information:

    <?xml version="1.0" encoding="UTF-8"?>
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.borismus.webintent" version="1.0.0">
    <config-file target="res/xml/config.xml" parent="plugins">
    <plugin name="WebIntent" value="com.borismus.webintent.WebIntent" />
    </config-file>

        <engines>
            <engine name="cordova" version=">=2.7.0" />
        </engines>
        
        <name>WebIntent</name>

        <asset src="www/WebIntent.js" target="WebIntent.js" />

        <platform name="android">
            <source-file src="src/android/WebIntent.java" target-dir="src/com/borismus/webintent" />       
        </platform>

    </plugin>

    5. At last, I compressed the webintent folder (webintent.rar) and followed the steps to add custom plugins on Icenium.
    6. Finally, I added this line to the index.html file:

    <script src="Plugins/webintent/www/WebIntent.js"></script>

    Am I doing something wrong?

    Thanks!
    Relez.
  5. Yavor Georgiev
    Admin
    Yavor Georgiev avatar
    982 posts

    Posted 12 Jul 2013 Link to this post

    Hi Relez,

     You need to place the config-file element within the platform element like so:
    <?xml version="1.0" encoding="UTF-8"?>
    <plugin xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android" id="com.borismus.webintent" version="1.0.0">
     
        <engines>
            <engine name="cordova" version=">=2.7.0" />
        </engines>
         
        <name>WebIntent</name>
     
        <asset src="www/WebIntent.js" target="WebIntent.js" />
     
        <platform name="android">
            <config-file target="res/xml/config.xml" parent="plugins">
                <plugin name="WebIntent" value="com.borismus.webintent.WebIntent" />
            </config-file>
     
            <source-file src="src/android/WebIntent.java" target-dir="src/com/borismus/webintent" />      
        </platform>
     
    </plugin>

     And the script include in your index.html needs to match the target of the asset element: <script src="WebIntent.js"></script>

    Regards,
    Yavor Georgiev
    Telerik

    Looking for tips & tricks directly from the Icenium team? Check out our blog!
    Missed our first webinar, watch it here.
    Share feedback and vote for features on our Feedback Portal.
  6. Relez
    Relez avatar
    45 posts
    Member since:
    Jan 2013

    Posted 12 Jul 2013 Link to this post

    Hello Yavor, I replaced the xml code with yours and matched the target of the asset element in the html file. When I try to build the project this is what the log says:

    [2013-07-12 10-15-47-98] Log (Info,None): Project "Navigation.proj" (default targets):
    Buildfile: /tmp/8d39873de5e5431a8324ea27c1a8c8a4/build.xml

    -set-mode-check:

    -set-release-mode:

    -release-obfuscation-check:
         [echo] proguard.config is ${proguard.config}

    -pre-build:

    -check-env:
     [checkenv] Android SDK Tools Revision 22.0.0
     [checkenv] Installed at /Users/builder/android-sdk-macosx

    -setup:
         [echo] Project Name: Navigation
      [gettype] Project Type: Application

    -build-setup:
    [getbuildtools] Using latest Build Tools: 17.0.0
         [echo] Resolving Build Target for Navigation...
    [gettarget] Project Target:   Android 4.1.2
    [gettarget] API level:        16
         [echo] ----------
         [echo] Creating output directories if needed...
        [mkdir] Created dir: /tmp/8d39873de5e5431a8324ea27c1a8c8a4/bin/res
        [mkdir] Created dir: /tmp/8d39873de5e5431a8324ea27c1a8c8a4/gen
        [mkdir] Created dir: /tmp/8d39873de5e5431a8324ea27c1a8c8a4/bin/classes
        [mkdir] Created dir: /tmp/8d39873de5e5431a8324ea27c1a8c8a4/bin/dexedLibs
         [echo] ----------
         [echo] Resolving Dependencies for Navigation...
    [dependency] Library dependencies:
    [dependency] No Libraries
         [echo] ----------
         [echo] Building Libraries with 'release'...
       [subant] No sub-builds to iterate on

    -code-gen:
    [mergemanifest] Merging AndroidManifest files into one.
    [mergemanifest] Manifest merger disabled. Using project manifest only.
         [echo] Handling aidl files...
         [aidl] No AIDL files to compile.
         [echo] ----------
         [echo] Handling RenderScript files...
    [renderscript] No RenderScript files to compile.
         [echo] ----------
         [echo] Handling Resources...
         [aapt] Generating resource IDs...
         [echo] ----------
         [echo] Handling BuildConfig class...
    [buildconfig] Generating BuildConfig class.

    -pre-compile:

    -compile:
        [javac] Compiling 11 source files to /tmp/8d39873de5e5431a8324ea27c1a8c8a4/bin/classes
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:30: cannot find symbol
        [javac] symbol: class Plugin
        [javac] public class WebIntent extends Plugin {
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:52: cannot find symbol
        [javac] symbol  : method error()
        [javac] location: class org.apache.cordova.api.CallbackContext
        [javac]                     callbackContext.error();
        [javac]                                    ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:81: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:81: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:83: cannot find symbol
        [javac] symbol  : variable cordova
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 Intent i = ((DroidGap)this.cordova.getActivity()).getIntent();
        [javac]                                           ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:85: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 return new PluginResult(PluginResult.Status.OK, i.hasExtra(extraName));
        [javac]                            ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:85: package PluginResult does not exist
        [javac]                 return new PluginResult(PluginResult.Status.OK, i.hasExtra(extraName));
        [javac]                                                     ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:89: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:89: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:91: cannot find symbol
        [javac] symbol  : variable cordova
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 Intent i = ((DroidGap)this.cordova.getActivity()).getIntent();
        [javac]                                           ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:94: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.OK, i.getStringExtra(extraName));
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:94: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.OK, i.getStringExtra(extraName));
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:96: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.ERROR);
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:96: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.ERROR);
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:100: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:100: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:103: cannot find symbol
        [javac] symbol  : variable cordova
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 Intent i = ((DroidGap)this.cordova.getActivity()).getIntent();
        [javac]                                           ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:105: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 return new PluginResult(PluginResult.Status.OK, uri);
        [javac]                            ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:105: package PluginResult does not exist
        [javac]                 return new PluginResult(PluginResult.Status.OK, uri);
        [javac]                                                     ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:108: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:108: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:111: cannot find symbol
        [javac] symbol  : variable callbackId
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 this.onNewIntentCallback = callbackId;
        [javac]                                            ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:112: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
        [javac]                 ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:112: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
        [javac]                                           ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:112: package PluginResult does not exist
        [javac]                 PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
        [javac]                                                                    ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:118: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:118: package PluginResult does not exist
        [javac]                     return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                                         ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:138: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]                 return new PluginResult(PluginResult.Status.OK);
        [javac]                            ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:138: package PluginResult does not exist
        [javac]                 return new PluginResult(PluginResult.Status.OK);
        [javac]                                                     ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:140: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]             return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                        ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:140: package PluginResult does not exist
        [javac]             return new PluginResult(PluginResult.Status.INVALID_ACTION);
        [javac]                                                 ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:143: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]             return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
        [javac]                        ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:143: package PluginResult does not exist
        [javac]             return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
        [javac]                                                 ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:150: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]             PluginResult result = new PluginResult(PluginResult.Status.OK, intent.getDataString());
        [javac]             ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:150: cannot find symbol
        [javac] symbol  : class PluginResult
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]             PluginResult result = new PluginResult(PluginResult.Status.OK, intent.getDataString());
        [javac]                                       ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:150: package PluginResult does not exist
        [javac]             PluginResult result = new PluginResult(PluginResult.Status.OK, intent.getDataString());
        [javac]                                                                ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:153: cannot find symbol
        [javac] symbol  : variable callbackContext
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]             callbackContext.sendPluginResult(result);
        [javac]             ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:147: method does not override or implement a method from a supertype
        [javac]     @Override
        [javac]     ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:185: cannot find symbol
        [javac] symbol  : variable cordova
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]         ((DroidGap)this.cordova.getActivity()).startActivity(i);
        [javac]                        ^
        [javac] /tmp/8d39873de5e5431a8324ea27c1a8c8a4/src/com/borismus/webintent/WebIntent.java:196: cannot find symbol
        [javac] symbol  : variable cordova
        [javac] location: class com.borismus.webintent.WebIntent
        [javac]         ((DroidGap)this.cordova.getActivity()).sendBroadcast(intent);
        [javac]                        ^
        [javac] 40 errors


    Done building project "Navigation.proj" -- FAILED.


    Sorry about the inconvenience, this is my first custom plugin experience.

    Thanks, 
    Relez!
  7. Yavor Georgiev
    Admin
    Yavor Georgiev avatar
    982 posts

    Posted 12 Jul 2013 Link to this post

    Hello Relez,

     It appears that you're using Cordova 2.7, correct?

     It looks like the WebIntent plugin hasn't been updated to match the Cordova 2.7 plugin API. You can find more information about this and how to fix it here.

    Regards,
    Yavor Georgiev
    Telerik

    Looking for tips & tricks directly from the Icenium team? Check out our blog!
    Missed our first webinar, watch it here.
    Share feedback and vote for features on our Feedback Portal.
  8. Relez
    Relez avatar
    45 posts
    Member since:
    Jan 2013

    Posted 12 Jul 2013 Link to this post

    Hello Yavor,

    After some minutes searching, I fixed the java file problems for Cordova 2.7, now after importing the plugin and debugged the project, I tried to call the sendEmail function posted by the author of this thread but It doesn't do anything.
    The line where I include the Javascript in the html file looks like this:

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

    Did I miss any step importing the plugin?

    Thanks!
  9. Yavor Georgiev
    Admin
    Yavor Georgiev avatar
    982 posts

    Posted 15 Jul 2013 Link to this post

    Hello,

     I've prepared a project that uses the WebIntent plugin. I've tested it on a 4.2.1 Galaxy Nexus and it works for me. Please download the attached project and see if you can make it run on your device. If it still doesn't work for you, I'll need the model and version of your device before I can assist you further.

    Regards,
    Yavor Georgiev
    Telerik

    Looking for tips & tricks directly from the Icenium team? Check out our blog!
    Missed our first webinar, watch it here.
    Share feedback and vote for features on our Feedback Portal.
  10. Relez
    Relez avatar
    45 posts
    Member since:
    Jan 2013

    Posted 15 Jul 2013 Link to this post

    Hello Yavor,

    Everything looks good, but then I call the sendEmail() method, the error function throws the "Invalid action" message, in the args variable.

    I am using a Galaxy S3 with Android 4.1.2.

    Thanks,
    Relez!
  11. Yavor Georgiev
    Admin
    Yavor Georgiev avatar
    982 posts

    Posted 15 Jul 2013 Link to this post

    Hello,

     I just tested the app on the exact same device. I get the "Complete action using" dialog Android displays when an intent is launched. Perhaps you can try on another device, or another type of intent, or you can contact the plugin author for more information on how to debug this yourself?

    Regards,
    Yavor Georgiev
    Telerik

    Looking for tips & tricks directly from the Icenium team? Check out our blog!
    Missed our first webinar, watch it here.
    Share feedback and vote for features on our Feedback Portal.
  12. Relez
    Relez avatar
    45 posts
    Member since:
    Jan 2013

    Posted 15 Jul 2013 Link to this post

    Hello Yavor,

    I created a new project and move all the files into it, it works now. Thanks for your help.

    Thanks, 
    Relez!
  13. Dnyaneshwar
    Dnyaneshwar avatar
    4 posts
    Member since:
    Aug 2013

    Posted 24 Aug 2013 Link to this post

    Hello Yavor,
    I am trying to use https://github.com/phonegap/phonegap-plugins/tree/master/iOS/CalendarPlugin this in my project. I have prepared follwing plugin.xml but I am getting errors. Will you please guide me on this.What is that I am missing. Thanks in advance

    plugin.xml

    <plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
        xmlns:android="http://schemas.android.com/apk/res/android"
        id="net.hoolihan.CalendarPlugin"
        version="0.2.0">

        <name>Canvas 2 Image</name>

        <asset src="www/calendar.js" target="calendar.js" />

        <!-- ios -->
        <platform name="ios">
            <plugins-plist key="CalendarPlugin"
                        string="CalendarPlugin" />

            <header-file src="src/ios/calendarPlugin.h" />

            <source-file src="src/ios/calendarPlugin.m" />
        </platform>

    </plugin>

    Also what are changes I have to make in index.html? I have added this line  <script src="calendar.js"></script>  what else I am missing?
  14. Steve
    Admin
    Steve avatar
    10941 posts

    Posted 28 Aug 2013 Link to this post

    Hello Dnyaneshwar,

    As you have noticed the Calendar plugin you refer to is not plugman compatible and in order to use it, you should first make it compatible. For more information, please refer to the following help articles:
    A thing I noticed is that you have placed the Calendar plugin folder in the root of the project which is not correct. It should be placed in the Plugins folder and it is recommended that you follow the plugman structure as per the referenced help articles above. The reference to the plugin in html pages is correct, but I don't find that reference in your cal_test project

    Regards,
    Steve
    Telerik

    Looking for tips & tricks directly from the Icenium team? Check out our blog!
    Share feedback and vote for features on our Feedback Portal.
Back to Top