2017-10-07 3 views
0

Je voudrais ouvrir une page Web dans Xamarin pour Android et iOS. Le code ne fonctionne pas. Quelqu'un peut-il m'aider à comprendre ce qui ne va pas?Comment ouvrir le navigateur par défaut dans Xamarin?

Pour Android, un clic sur le bouton passe par le code, mais rien ne se passe par la suite. Pour iOS, cliquer sur le bouton ouvre une page Safari, mais il ne peut pas ouvrir la page et affiche un message "Safari n'a pas pu ouvrir la page parce que le serveur a cessé de répondre."

Le arg test est passé: "http://www.google.com"

Merci.

code:

async Task ExecuteLaunchBrowserAsync(string arg) 
    { 
     if (IsBusy) 
      return; 

     try 
     { 
      await CrossShare.Current.OpenBrowser(arg, new BrowserOptions 
      { 
       ChromeShowTitle = true, 
       ChromeToolbarColor = new ShareColor 
       { 
        A = 255, 
        R = 100, 
        G = 50, 
        B = 255 
       }, 
       UseSafariReaderMode = true, 
       UseSafariWebViewController = true 
      }); 
     } 
     catch 
     { 
     } 
    } 
+2

Avez-vous essayé Device.OpenUri()? – Jason

+0

Merci. J'utilisais un plugin NuGet, mais cela me donnait du fil à retordre. Votre méthode était bien meilleure. Merci d'avoir partagé. – MrProgrammer

Répondre

1

Vous avez juste besoin d'utiliser le code de coup, il fonctionnera pour Android et iOS.

void Device.OpenUri(Uri uri) 

par ex.

Device.OpenUri(new Uri("http://example.com")) 

Pour travailler dans l'utilisation iOS Sécurité des transports dans Info.plist

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key><true/> 
</dict> 

http://i.imgur.com/qqP7KHp.gif

+0

Exactement ce dont j'avais besoin. Je vous remercie. – MrProgrammer