Esempio n. 1
0
        private bool HandleIntegration(Browser layer)
        {
            if (layer == null || layer.Url == null)
            {
                return(false);
            }

            // mailto won't be encoded correctly
            if (layer.Url.StartsWith("mailto"))
            {
                MailComposer.Compose(layer.Url);
                return(true);
            }

            NSUrl url = NSUrl.FromString(System.Web.HttpUtility.UrlPathEncode(layer.Url));

            if (url == null)
            {
                return(false);
            }

            switch (url.Scheme)
            {
            case "image":
            case "videorecording":
            {
                ImagePicker.GetMedia(url.AbsoluteString);
                return(true);
            }

            case "audiorecording":
            case "voicerecording":
            {
                AudioPlayer.Record(url.AbsoluteString);
                return(true);
            }

            case "audio":
            {
                AudioPlayer.Play(url.AbsoluteString);
                return(true);
            }

            case "video":
            {
                VideoPlayer.Play(url.AbsoluteString);
                return(true);
            }

            case "scan":
            {
                ScannerView.Scan(url.AbsoluteString);
                return(true);
            }

            case "print":
            {
                Printer.Print(url.AbsoluteString);
                return(true);
            }

            default:
            {
                if (url.IsExternal())
                {
                    if (!UIApplication.SharedApplication.OpenUrl(url))
                    {
                        var av = new UIAlertView(GetResourceString("Error"),
                                                 string.Format(GetResourceString("SchemeNotSupported"), url.Scheme),
                                                 null, GetResourceString("OK"), null);

                        av.Show();
                    }
                    return(true);
                }
                return(false);
            }
            }
        }