首页 > 解决方案 > 我需要参考 Uno.Web.Http.CookieManager 有什么用

问题描述

大致遵循 uno-prism 模板。找不到Uno.Web.Http.CookieManager。其实找不到Uno.Web。我错过了什么?

试过:

using Uno;
using Uno.UI;
using Uno.UI.Toolkit;
using Uno.UI.Web;
using Windows.Web.Http;

它不喜欢:using Uno.Web;

已安装 NuGet:

Uno.Core
Uno.Microsoft.Toolkit.Uwp
Uno.Microsoft.Toolkit.Uwp.UI.Controls
Uno.Microsoft.Toolkit.Uwp.UI.Controls.DataGrid
Uno.UI
Uno.UI.RemoteControl
Uno.UI.WebAssembly
Uno.Wasm.Bootstrap
Uno.Wasm.Bootstrap.DevServer

这是课程

using System;
using System.Linq;
using System.Collections.Generic;
using Prism.Mvvm;


namespace LogManPrism.Model
{
    public class CookieMonster : BindableBase
    {
        private void SetCookie(string key, string value)
        {
#if __WASM__
            var cookie  = new Uno.Web.Http.Cookie(key, value);
            var request = new Uno.Web.Http.SetCookieRequest(cookie)
            {
                Path = "/",
                Expires = DateTimeOffset.UtcNow.AddHours(12),
                Secure = true,
            };
            Uno.Web.Http.CookieManager.GetDefault().SetCookie(request);
#endif
        }

        private string GetCookie(string key)
        {
#if __WASM__
            var cookie = Uno.Web.Http.CookieManager.GetDefault().FindCookie(key);

            return cookie != null ? cookie.Value : string.Empty;
#else
            return string.Empty;
#endif  
        }

        private void DeleteCookie(string key)
        {
#if __WASM__
            Uno.Web.Http.CookieManager.GetDefault().DeleteCookie(key, path: "/");
#endif
        }



        public void SetThisBeast(string s)
        {
            SetCookie("A", s);
        }

        public string GetItBack()
        {
            string s = GetCookie("A");

            return string.IsNullOrEmpty(s) ? "no beast here" : s;
        }

    }
}

标签: webassemblyuno-platform

解决方案


使用它应该足够了:

using Uno.Web.Http;

您可以在此处查看源代码。另请注意,此类仅在 WebAssembly 上可用,因此它的使用需要在特定于目标的库中或包含在其中(例如,#if __WASM__请参见此处)。


推荐阅读