Это немного зависит от того, определили ли вы свой WebView
в коде или XAML.
Если вы определили его в коде, убедитесь, что у вас есть ссылка на него по имени переменной, например:
var myWebView = new WebView();
myWebView
- вот о чем я говорю в данном случае.
Затем включите это using в начало вашего класса:
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
Затем добавьте эту строку после инициализации WebView
:
myWebView.On<Android>().SetMixedContentMode(MixedContentHandling.AlwaysAllow);
Из XAML добавьте нужное пространство имен в корень страницы, например:
<ContentPage xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core" ....>
Затем на вашем WebView
вы можете просто добавить еще один атрибут: <WebView ... android:WebView.MixedContentMode="AlwaysAllow" />
Это так называемая специфика платформы. Вы можете установить свойства, зависящие от платформы, непосредственно из общего кода Xamarin.Forms, в отличие от настраиваемого средства визуализации для одного простого свойства.
Подробнее об этом читайте здесь: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/platform-specifics/ и использование (в данном конкретном случае, собственно) здесь: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/platform-specificics/consuming/android#enable-mixed-content-in-a-webview
Замечание о том, что вы здесь устанавливаете. В этом примере я просто установил для него значение AlwaysAllow
, чтобы вы знали, что делает каждый параметр, и установили для него наиболее безопасный. Вот небольшое объяснение, взятое из Документов Microsoft:
AlwaysAllow
- указывает, что WebView
позволит источнику HTTPS загружать контент из источника HTTP.
NeverAllow
- указывает, что WebView
не позволит источнику HTTPS загружать контент из источника HTTP.
CompatibilityMode
- указывает, что WebView
будет пытаться быть совместимым с подходом последней версии веб-браузера устройства. Некоторому содержимому HTTP может быть разрешено загружать источник HTTPS, а другие типы содержимого будут заблокированы. Типы заблокированного или разрешенного содержимого могут изменяться с каждым выпуском операционной системы.
person
Gerald Versluis
schedule
09.11.2018