{"version":"1.0","provider_name":"Xamarin Blog","provider_url":"https:\/\/devblogs.microsoft.com\/xamarin","author_name":"James Montemagno","author_url":"https:\/\/devblogs.microsoft.com\/xamarin\/author\/jamesmontemagno\/","title":"Extending Xamarin.Forms with Control Plugins - Xamarin Blog","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"IXd7eqD8Pu\"><a href=\"https:\/\/devblogs.microsoft.com\/xamarin\/extending-xamarin-forms-with-control-plugins\/\">Extending Xamarin.Forms with Control Plugins<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/xamarin\/extending-xamarin-forms-with-control-plugins\/embed\/#?secret=IXd7eqD8Pu\" width=\"600\" height=\"338\" title=\"&#8220;Extending Xamarin.Forms with Control Plugins&#8221; &#8212; Xamarin Blog\" data-secret=\"IXd7eqD8Pu\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/xamarin\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-content\/uploads\/sites\/44\/2019\/03\/swimlane-xamarin-cross-platform-1.png","thumbnail_width":636,"thumbnail_height":300,"description":"With an enhanced extensibility framework, Xamarin.Forms is an amazing platform for developing plugins that add cross-platform functionality; however, you can take it a step further by developing custom controls for Xamarin.Forms and packaging them into your very own Control Plugin for Xamarin.Forms. We have had several posts on how to use custom controls in Android, [&hellip;]"}