写在前面
一个过不了关的游戏居然爆火,搞的我都想去开发小程序游戏了,在app中,用到浏览器的地方比较多。在这儿两种方法,第一种很简单调用外部浏览器,第二种也很简单,就是嵌一个浏览器控件进去。
打开浏览器(系统自带的)
首先新建一个工程,放俩按钮。windows/ios/macos 就两句话;
Uri uri = new Uri("https://www.youkuaiyun.com");
await Browser.Default.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
android则还需要加点东西,找到android下androidmanifest.xml这个文件。
在manifest节点下加queries节点以及这一堆内容。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="http"/>
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="https"/>
</intent>
</queries>
</manifest>
运行后是这样子。
嵌入浏览器(webview)
直接在MainPage xaml文件中添加一个webview控件即可,需要制定宽度和高度,如果动态创建的话代码如下。这里我获取了设备分辨率的宽度和高度1/3作为控件的宽和高。
WebView webvView = new WebView
{
Source = "https://www.youkuaiyun.com"
};
webvView.HeightRequest = DeviceDisplay.Current.MainDisplayInfo.Height/3;
webvView.WidthRequest = DeviceDisplay.Current.MainDisplayInfo.Width;
layout.Children.Add(webvView);