Xamarin.Android – Diğer uygulamalarla paylaşım (Link/Text/Html/Image)

17 Şub

Selamlar,
Android’te uygulama içinden paylaşım yapabilme olayı sandığım kadar zor değilmiş.

Stackoverflow‘da bir cevaba bakıyormuşsunuz gibi olacak fakat bunun için bir proje açıp sıfırdan anlatmaya gerek duymadım. Çünkü aşağıda ki kod parçacağını bir butonun click eventına bağlamanız yeterli oluyor.

Text/Link paylaşımı için

Intent sharingIntent = new Intent(Android.Content.Intent.ActionSend);
                    sharingIntent.SetType("text/plain");
                    sharingIntent.PutExtra(Android.Content.Intent.ExtraText, "https://play.google.com/store/apps/details?id=" + PackageName);
                    StartActivity(Intent.CreateChooser(sharingIntent, "Sharing link option"));
XamarinAndroidShareWithOtherApps

Text/plain seçtiğimiz için, paylaş dediğimizde Android otomatik olarak text paylaşımı yapabileceği, telefonda yüklü olan uygulamaları gösteriyor. Şuan bu emulatorde yüklü ekstra bir şey olmadığı için mesajları, gmaili falan gösteriyor bir tek.

Yani siz bunu başka uygulamaların yüklü olduğu telefonda denediğiniz zaman otomatik olarak onları da seçenekler arasında gösterecek; mesela twitter yüklüyse, twet atma, twitter mesajı ile paylaşma seçenekleri çıkacak, aynı şekilde instagram içinde dm mesaj seçenekleri gözükecek. Whatsappı söylemiyorum zaten 🙂 demek istediğim Android gerisini kendisi hallediyor.

Android bunu nereler ile paylaşabileceğine tip belirttiğimiz kısımda karar veriyor. Biz “SetType(“text/plain”)” komutunu verdiğimiz için text paylaşımlarını yapabileceğimiz uygulamaları listeliyor otomatik olarak.

Çeşitli seçenekler mevcut(html,image):

Örneğin html olarak bir şeyler paylaşmak istersek, bu kez paylaş dediğinizde bazı uygulamaların listelenmediğini görebilirsiniz. Sadece html veri paylaşabileceğiniz uygulamaları listeler.

Aşağıda html örneğini görebilirsiniz.

string shareBodytext = string.Format("<html>" +
                                                    "<title>{0}</title>" +
                                                    "<body>Im watching {1} - {2}x{3} <br>" +
                                                    "<img src='{4}'/> <br>" +
                                                    "Check out app at: https://play.google.com/store/apps/details?id={5}"+
                                                    "</body>" +
                                                    "</html>",
                                                    Title[position],
                                                    Title[position],
                                                    Season[position],Episode[position],
                                                    ImageUrl[position],
                                                    context.PackageName);

                Intent sharingIntent = new Intent(Android.Content.Intent.ActionSend);
                sharingIntent.SetType("text/html");
                sharingIntent.PutExtra(Android.Content.Intent.ExtraSubject, Title[position]);
                sharingIntent.PutExtra(Android.Content.Intent.ExtraText, shareBodytext);
                sharingIntent.PutExtra(Android.Content.Intent.ExtraTitle, Title[position]);

                context.StartActivity(Intent.CreateChooser(sharingIntent, "Sharing option"));

Böyle bir html hazırladım ve paylaş deyip Email’i seçtim, emaili otomatik olarak oluşturdu ve sonuç aşağıdaki gibi 🙂

Umarım yardımcı olabilmişimdir.

Yararlı olabilecek kaynaklar:

https://guides.codepath.com/android/Sharing-Content-with-Intents#sending-links

https://www.youtube.com/watch?v=oNj1DFTLvG0

Bir Cevap Yazın