- 不綁定viewmodel
在說明綁定viewmodel前先說明一下不綁定的情況下是怎麼做的,兩種方式
a.<WebView Source="https://www.baidu.com" x:Name="webView" />
b. 在C#中
var htmlSource = new HtmlWebViewSource();
htmlSource.Html = "https://www.baidu.com":
webView.Source = htmlSource;
其中"https://www.baidu.com"可以是網址也可以直接是html代碼字符串
- 綁定ViewModel
Binding的用法和b中的方式一樣,由於我的Binding是在構造函數中用BindingContext設置的,所以導致頁面不顯示web
代碼:
<WebView Source="{Binding Html}" HeightRequest="1000" WidthRequest="1000" />
這裏 HeightRequest=“1000” WidthRequest=“1000” 設置寬高非常重要,不然默認網頁寬高爲0,就顯示不出來了,這個問題困擾我好久,最後在overflow找到了解決辦法https://stackoverflow.com/questions/48356242/xamarin-forms-mvvm-webview-not-loading
private HtmlWebViewSource _html;
public HtmlWebViewSource Html
{
get { return _html; }
set
{
if (_html != value)
{
_html = value;
OnPropertyChanged("Html");
}
}
}
然後在構造函數中設置Html的值就行了
4. 繞過IOS的ATS
想要在Xamarin.Forms-ios中顯示http鏈接的網頁,需要繞過ATS(ios 的安全機制)
做法:
打開這個文件位置,用記事本打開
添加這個節點就可以了
<key>MinimumOSVersion</key>
<string>11.0</string>
這個節點是系統版本問題
如果需要自己拼接網頁,然後顯示到頁面上,不是通過連接
在xaml上創建一個
然後在cs的構造函數裏