Mobiele apps programmeren met Xamarin – communicatie en sociale media integreren

print
Deze handleiding maakte deel uit van het programmeertraject:

De inhoud van deze handleiding is echter grotendeels vervangen door Xamarin.Essentials.


Inhoud


Wat vooraf ging

Ik herneem hier even een vorige post over het installeren van NuGet Packages (plug-ins).

NuGet is een package manager voor Microsoft development platforms zoals .NET. U kunt deze pakketten installeren om zo de mogelijkheden van uw project uit te breiden.

  • Om een NuGet package te installeren klikt u rechts op het project waar u het NuGet package wilt voor installeren of u klikt rechts op de Solution om het NuGet package meteen te installeren voor alle projecten.
  • Vervolgens klikt u op Manage NuGet packages for Solution….

  • Selecteer het NuGet package dat u wil installeren.
  • Vink alle projecten aan waarvoor u het wilt installeren.
  • Klik op Install.

Onderstaande video toont een volledige installatie (zij het in Visual Studio 2015 en voor een ASP.NET project maar in weze verschilt dit niet).


Inleiding

Onder communicatie en sociale media versta ik hier:

  • SMS
  • Telefoneren
  • Email
  • Sociale media

Om dit te kunnen doen heb ik 3 plug-ins nodig:

Een overzicht van heel wat interessante plug-ins, waarvan sommigen in andere post aan bod komen, vindt u hier.

  • Start een nieuw Xamarin-project en geef het een passende naam (bv. TestCommunicatie).

Communicatie

Plug-in installeren

  • Klik rechts op de Solution om het NuGet package meteen te installeren voor alle projecten.
  • Vervolgens klikt u op Manage NuGet packages for Solution….
  • Klik op Browse.
  • Zoek naar Messaging Plugin for Xamarin and Windows, selecteer alle projecten en de laatste stabiele versie en klik op Install.

Permissies instellen

De Messaging Plugin for Xamarin and Windows heeft volgende permissies nodig:

Android

Voor Android moeten de WCALL_PHONE en SEND_SMS permissies worden ingesteld. Dit gebeurt echter automatisch door de plug-in. Om Android-permissies zelf in te stellen:

  • Open Properties onder het Android-project.
  • Ga naar Android Manifest.
  • Vink CALL_PHONE en SEND_SMS aan.

De code uitgelegd

Hieronder vindt u code-snippets voor het versturen van SMS, telefoneren en het versturen van e-mail. Tenslotte volgt een videovoorbeeld als demonstratie.

SMS

Een SMS verstuurt u als volgt:

var smsMessenger = MessagingPlugin.SmsMessenger;
if (smsMessenger.CanSendSms){
   smsMessenger.SendSms("+11111111111", "Hello from your friends at Xamarin!");
}

Telefoneren

Telefoneren kan als volgt:

var phoneDialer = CrossMessaging.Current.PhoneDialer;
if (phoneDialer.CanMakePhoneCall) {
    phoneDialer.MakePhoneCall("+111111111");
}

E-mail zonder bijlage

Een E-mail zonder bijlage verstuurt u als volgt:

var emailMessenger = CrossMessaging.Current.EmailMessenger;
if (emailMessenger.CanSendEmail)
{
    // Send simple e-mail to single receiver without attachments, bcc, cc etc.
    emailMessenger.SendEmail("to.plugins@xamarin.com", "Xamarin Messaging Plugin", "Well hello there from Xam.Messaging.Plugin");

    // Alternatively use EmailBuilder fluent interface to construct more complex e-mail with multiple recipients, bcc, attachments etc. 
    var email = new EmailMessageBuilder()
      .To("to.plugins@xamarin.com")
      .Cc("cc.plugins@xamarin.com")
      .Bcc(new[] { "bcc1.plugins@xamarin.com", "bcc2.plugins@xamarin.com" })
      .Subject("Xamarin Messaging Plugin")
      .Body("Well hello there from Xam.Messaging.Plugin")
      .Build();

    emailMessenger.SendEmail(email);
} 

Platform specifiek

Onderstaande opties zijn platform specifiek.

HTML

In Android en iOS kan HTML-opmaak mee worden verstuurd.

var emailMessenger = CrossMessaging.Current.EmailMessenger;
if (emailMessenger.CanSendEmail)
{
    // Send simple e-mail to single receiver without attachments, bcc, cc etc.
    emailMessenger.SendEmail("to.plugins@xamarin.com", "Xamarin Messaging Plugin", "Well hello there from Xam.Messaging.Plugin");

    // Alternatively use EmailBuilder fluent interface to construct more complex e-mail with multiple recipients, bcc, attachments etc. 
    var email = new EmailMessageBuilder()
      .To("to.plugins@xamarin.com")
      .Cc("cc.plugins@xamarin.com")
      .Bcc(new[] { "bcc1.plugins@xamarin.com", "bcc2.plugins@xamarin.com" })
      .Subject("Xamarin Messaging Plugin")
      .Body("Well hello there from Xam.Messaging.Plugin")
      .Build();

    emailMessenger.SendEmail(email);
} 
Bijlagen

Het toevoegen van bijlagen is ook platform specifiek.

// Android
File file = new File("<path_to_file>");
var email = new EmailMessageBuilder()
  .To("to.plugins@xamarin.com")
  .Subject("Xamarin Messaging Plugin")
  .Body("Well hello there from Xam.Messaging.Plugin")
  .WithAttachment(file);
  .Build();

// iOS
NSUrl file = new NSUrl("<path_to_file>", false);
var email = new EmailMessageBuilder()
  .To("to.plugins@xamarin.com")
  .Subject("Xamarin Messaging Plugin")
  .Body("Well hello there from Xam.Messaging.Plugin")
  .WithAttachment(file);
  .Build();

// PCL
var email = new EmailMessageBuilder()
  .To("to.plugins@xamarin.com")
  .Subject("Xamarin Messaging Plugin")
  .Body("Well hello there from Xam.Messaging.Plugin")
  .WithAttachment("<path_to_picture>", "image/jpeg");
  .Build();

Voor nog meer opties kunt u hier terecht.


Bestanden selecteren

Als u een bijlage wilt toevoegen aan een e-mail zou het handig zijn moest u het gewenste bestand kunnen selecteren.

Een plug-in om de bestanden voor de bijlage te selecteren is FilePicker-Plugin-for-Xamarin-and-Windows.

Plug-in installeren

  • Klik rechts op de Solution om het NuGet package meteen te installeren voor alle projecten.
  • Vervolgens klikt u op Manage NuGet packages for Solution….
  • Klik op Browse.
  • Zoek naar FilePicker-Plugin-for-Xamarin-and-Windows, selecteer alle projecten en de laatste stabiele versie en klik op Install.

Permissies instellen

De FilePicker-Plugin-for-Xamarin-and-Windows heeft volgende permissies nodig:

Android

Voor Android moeten de WRITE_EXTERNAL_STORAGE en READ_EXTERNAL_STORAGE permissies worden ingesteld. Dit gebeurt echter automatisch door de plug-in. Om Android-permissies zelf in te stellen:

  • Open Properties onder het Android-project.
  • Ga naar Android Manifest.
  • Vink WRITE_EXTERNAL_STORAGE en READ_EXTERNAL_STORAGE aan.

iOS

Voor iOS moet u de iCloud Driver voor uw app configureren.

De code uitgelegd

Voeg eerst de nodige namespaces toe.

using Plugin.FilePicker;
using Plugin.FilePicker.Abstractions;

De code om het pad naar een bestand te selecteren is als volgt:

FileData fileData = await CrossFilePicker.Current.PickFile();
if (fileData != null)
{
    string fileName = fileData.FilePath;
}


Sociale media

Ik beperk me hier tot het verwijzen naar een bestaande plug-in om sociale media te integreren. Zelf ben ik zo geen sociale fanaat en niet iedereen heeft behoefte om vanuit een eigen app te posten op Twitter of Facebook.

De Xamarin.Social plug-in brengt een verbinding met uw sociale media tot stand en stelt u in staat om er berichten te posten.

Plug-in installeren

  • Klik rechts op de Solution om het NuGet package meteen te installeren voor alle projecten.
  • Vervolgens klikt u op Manage NuGet packages for Solution….
  • Klik op Browse.
  • Zoek naar Xamarin.Social, selecteer alle projecten en de laatste stabiele versie en klik op Install.

Voor de rest verwijs ik naar de basiscompetentie: IC BC024 – * kan zijn eigen deskundigheid inzake ICT opbouwen!


Behandelde Basiscompetenties uit de module ICT Programmeren – Integratie externe functionaliteiten

  • IC BC024 – * kan zijn eigen deskundigheid inzake ICT opbouwen
  • IC BC232 – kan digitale tools gebruiken om modellen, simulaties en visualisaties van de realiteit te maken
  • IC BC254 – kan externe content integreren en structureren
  • IC BC258 – houdt rekening met regelgeving m.b.t. licenties voor het gebruik en de publicatie van broncode
  • IC BC288 – kan ICT-problemen oplossen

Geef een reactie

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

  • Abonneer je op deze website d.m.v. e-mail

    Voer je e-mailadres in om je in te schrijven op deze website en e-mailmeldingen te ontvangen van nieuwe berichten.