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

Xamarin.Form的好处是可以开发跨平台的应用,但针对不同的平台,还需要做一些调整。如果你对Xamarin不了解的话,可以看我写的另一篇文章《我为什么选择Xamarin》。本文将主要介绍WebView在iOS平台上的使用方法。

需求

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

实现

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

Xamarin.Form下WebView在iOS平台上的使用方法_第1张图片

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



    
        
    

注意:

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

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

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

NSAppTransportSecurity

    NSAllowsArbitraryLoadsInWebContent
    

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


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

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

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

下面是运行效果


Xamarin.Form下WebView在iOS平台上的使用方法_第2张图片

参考资料

我为什么选择Xamarin
iOS 10 与 ATS - 更加安全的机制

你可能感兴趣的:(Xamarin.Form下WebView在iOS平台上的使用方法)