简体   繁体   中英

Cordova/Phonegap calendar plugin iOS create event

I'm using Cordova/Phonegap plugin found here:

https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin

My app is an RSS feed that had different events everyday, I would like to change the javascript code so that the user is able to add to calendar and the function reads the title date at least.

In my main.js the function is:

 function Calendar_Add(){
  // prep some variables

   var startDate = new Date("March 18, 2014 13:00:00");
   var endDate = new Date("March 18, 2014 14:30:00");
   var title = "Event Added!";
   var location = "Home";
   var notes = "Some notes about this event.";

   var success = function(message) { alert("Success: " + JSON.stringify(message)); };
   var error = function(message) { alert("Error: " + message); };

   // create
  window.plugins.calendar.createEventWithCalendar(title,location,notes,startDate,endDate,success,error);    
 }

This is creating an event but again I am having trouble making the variables. This is my full javascript page of what I have tried:

//jQuery get target page
function IE_navigate(index) {

Bindex = index;

$.mobile.changePage('#eventPage', 'slidefade');

$.each(data, function(i,item){
    if (i == Bindex) {
          //Clear if page was previously populated


          //Populate page
          $('#page-title').html(item.title + "<br />");
          $('#page-region').html(item.Region + "<br />");
          $('#page-content').html(item.fullInfo + "<br />");

            /*                  
             startDate = new Date(item.Date);
             endDate = new Date(item.Date);
             title = item.title;
             place = item.Region;

             */
          $(this).ready(function(e) {
              $('#page-content').on('click','a', function(e){
                e.preventDefault();
                currentPage = $(this).attr('href');
               window.open(currentPage, '_system', 'location=yes')
           });
          });
         // return false;

          return false
    }
});
};

 var Aindex = "";
var Bindex = "";
var data = [];

$(function () { Load_Content() });

function Load_Content() {

    $('#feed').empty(); 
    data = [];
$.ajax({
        type: 'GET',
        url:'http://www.e-grid.net/BayAreaTech/wp-rss2.php?cat=1',
        dataType: 'xml',
        success: function (xml) {
            $('#header-title').html("e-Grid Mobile");
                $(xml).find("item:lt(60)").each(function () {

                var dateText = $(this).find("Date").text().toString();
                var eventDate = moment(dateText,"YYYY-MM-DD");
                var title = $(this).find("title").text();
                var region = dateText.substr(8).toUpperCase();
                  if (region == "SCV") { region = "Santa Clara  Valley";}
                  if (region == "OEB") { region = "Oakland/East Bay";}
                  if (region == "SF") { region = "San Francisco";}
                  if (region == "ALL") { region = "All regions";} 
                var description = $(this).find("description").text();
                var infoDisplay = description.substr(0,     description.indexOf(",")+120) + "..."; //Parsed DATE from description
                var fullDescription = $(this).find('encoded').text();    
                var category = $(this).find("category").text();
                var linkUrl = $(this).find("link").text();
                var displayTitle = title; 

                var item = {title: displayTitle, 
                            link: linkUrl, 
                            infoDescription: infoDisplay, 
                            Date: new Date(eventDate), 
                            Region: region, 
                            fullInfo: fullDescription,}

                var now = moment().subtract('days', 1);
                if (item.Date >= now){ data.push(item); }

                });

                 data.sort(function (a, b) {
                    a = new Date(a.Date);
                    b = new Date(b.Date);
                    return a<b ? -1 : a>b ? 1 : 0;
                 });

                 if (data.length > 0) {
                    $.each(data, function (index, item) {

                          Aindex = data.indexOf(this)

                          var h_feedList =  '<li';
                          h_feedList += '><a href="#" onclick="IE_navigate(' + Aindex + ')" target="_blank">';
                          h_feedList += '<h3>';                             // Start  Title Text
                          h_feedList += item.title;                     // Title Text
                          h_feedList += '</h3><p>';                         // End the title text - start the description text
                          h_feedList += item.infoDescription;           // Description text
                          h_feedList += '</p>';                         // End description text
                          h_feedList += '</a>';                         // End list link
                          h_feedList += '</li>';                            // End List Item

                         $('#feed').append(h_feedList);

                     });
                 }
                 else
                 {
                     var message = "No upcoming events within your selection; check back soon!";
                     $('#feed').append('<h3>' + message + '</h3>');
                 }
        }
    });
};


function next_event() {
Bindex++;
if (Bindex > data.length){ Bindex = 0; }

$('#page-title').html(data[Bindex].title);
$('#page-region').html(data[Bindex].Region);
$('#page-content').html(data[Bindex].fullInfo); 


 startDate = new Date(data[Bindex].Date);
 endDate = new Date(data[Bindex].Date);
 title = data[Bindex].title;
 place = data[Bindex].Region;
}
function previous_event() {
Bindex--;
if (Bindex <= 0){ Bindex = data.length; }

$('#page-title').html(data[Bindex].title);
$('#page-region').html(data[Bindex].Region);
$('#page-content').html(data[Bindex].fullInfo);

startDate = new Date(data[Bindex].Date);
endDate = new Date(data[Bindex].Date);
title = data[Bindex].title;
place = data[Bindex].Region;

}


$(document).ajaxStart(function() {
  $.mobile.loading('show', {text: 'Loading BayArea Events...', textVisible: true, textonly: true});
});

$(document).ajaxStop(function() {
  $.mobile.loading('hide');
});






$( document ).on( "pagecreate", "#home", function() {
  $( document ).on( "swipeleft swiperight", "#home", function( e ) {
    // We check if there is no open panel on the page because otherwise
    // a swipe to close the left panel would also open the right panel (and v.v.).
    // We do this by checking the data that the framework stores on the page element (panel: open).
    if ( $( ".ui-page-active" ).jqmData( "panel" ) !== "open" ) {
        if ( e.type === "swipeleft" ) {
            $( "#settingspanel" ).panel( "open" );
        } else if ( e.type === "swiperight" ) {
            $( "#fieldpanel" ).panel( "open" );
        }
    }
 });
});
$( document ).on( "pagecreate", "#eventPage", function() {
 $( document ).on( "swipeleft swiperight", "#eventPage", function( e ) { 
         if ( e.type === "swipeleft" ) {
            next_event();
        } else if ( e.type === "swiperight" ) {
            previous_event();
        }
});
});

function Calendar_Add(){
 // prep some variables

 var startDate = new Date(item.Date);
 var endDate = new Date(item.Date);
 var title = item.title;
 var location = item.region;
 var notes = "";

 var success = function(message) { alert("Success: " + JSON.stringify(message)); };
 var error = function(message) { alert("Error: " + message); };

 // create
  window.plugins.calendar.createEventWithCalendar(title,location,notes,startDate,endDate,success,error);    
}

The function createEventWithCalendar does not exist for the Calendar plugin. You should use createEvent with the same parameters.

You would probably have been warned by a Javascript error if you had a function like this somewhere: window.onerror = function(a,b,c) { alert(a); alert(b); alert(c); }

Hope this helps you getting my plugin to work, Eddy

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM