De inhoud van deze handleiding is echter grotendeels vervangen door Xamarin.Essentials.
Inhoud
Wat vooraf ging
- U hebt weet hoe een Xamarin-project opgebouwd is.
- U hebt kennis van asynchroon programmeren.
- U weet hoe u platform specifiek kunt programmeren.
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
- Sociale media
Om dit te kunnen doen heb ik 3 plug-ins nodig:
- De Messaging Plugin for Xamarin and Windows.
- Een plug-in om de bestanden voor de bijlage te selecteren FilePicker-Plugin-for-Xamarin-and-Windows.
- De Xamarin.Social plug-in om verbinding met sociale media tot stand te brengen.
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