热门搜索 :
考研考公
您的当前位置:首页正文

Xamarin.Form下WebView在iOS平台上的使用方法

来源:东饰资讯网

需求

在我维护的项目中,我需要打开我在简书上写的应用教程,以供用户学习,为此,我需要在应用中嵌入一个WebView。

实现

我在Forms工程中新建了一个名为TrialPage的Xaml文件;

打开这个文件,添加如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage
    
    
    x:Class="SuiHanIME.TrialPage">
    <StackLayout
        Orientation="Vertical"
        BackgroundColor="Black">
        <WebView
            
            VerticalOptions="FillAndExpand" />
    </StackLayout>
</ContentPage>

注意:

  1. x:Class="SuiHanIME.TrialPage"中的SuiHanIME是我的项目的命名空间;
  2. Source=""声明了打开这个ContentPage时WebView要加载的网页地址;
针对iOS平台的特殊处理

由于iOS平台上引入了ATS(ATS 全称 App Transport Security,是 iOS 9 引入的一套安全机制,默认行为会强制保证所有的网络请求都使用 HTTPS。),所以在这里我们需要做一些处理才能使WebView正常工作;

我们打开iOS工程中的info.plist文件,加入如下代码:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoadsInWebContent</key>
    <true/>
</dict>

加入后在Xamarin.Studio上看到的显示是这样的:


NSAllowsArbitraryLoadsInWebContent是声明我们的应用可以加载任何类型的页面。

接着,我们就可以在应用中调用代码打开这个ContentPage了;这里我使用的是Navigation.PushAsync()方法;

    async void TrialButton_Clicked(object sender, System.EventArgs e) {
            await Navigation.PushAsync(new TrialPage(), true);
        }

下面是运行效果


参考资料

Top