Xamarin.Forms菜鳥筆記--2.WebView綁定ViewModel,繞過ATS

  1. 不綁定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代碼字符串

  1. 綁定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的構造函數裏

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章