小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C#使用Microsoft Edge WebView2記錄

 小仙女本仙人 2021-04-07

一、C#和JS互相調(diào)用 

1、js調(diào)用C# 

 C#代碼如下:

 webView.CoreWebView2.AddHostObjectToScript("webBrowserObj", new ScriptCallbackObject());

 await webView.CoreWebView2.AddScriptToExecuteOnDocumentCreatedAsync("var webBrowserObj= window.chrome.webview.hostObjects.webBrowserObj;");

 像網(wǎng)頁里面注入變量,這樣網(wǎng)頁調(diào)用時(shí)候不用每次寫window.chrome.webview.hostObjects.webBrowserObj調(diào)用,最主要的是為了兼容之前cef里面Js的寫法。

    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ComVisible(true)]
    /// <summary>
    /// 網(wǎng)頁調(diào)用C#方法
    /// </summary>
    public class ScriptCallbackObject
    {
        public string UserName { get; set; } = "我是C#屬性";

        public void ShowMessage()
        {
            MessageBox.Show("網(wǎng)頁調(diào)用C#");
        }

        public void ShowMessageArg(string arg)
        {
            MessageBox.Show("【網(wǎng)頁調(diào)用C#】:" + arg);
        }

        public string GetData(string arg)
        {
            return "【網(wǎng)頁調(diào)用C#獲取數(shù)據(jù)】;" + arg;
        }

        [System.Runtime.CompilerServices.IndexerName("Items")]
        public string this[int index]
        {
            get { return m_dictionary[index]; }
            set { m_dictionary[index] = value; }
        }
        private Dictionary<int, string> m_dictionary = new Dictionary<int, string>();        
    }

JS調(diào)用如下;

function callCsharp2() {

var data2 = $("#txtArg").attr("value"); //大坑 值不會時(shí)刻變化
// alert(data2);
var data = $("#txtArg").val(); 

window.chrome.webview.hostObjects.webBrowserObj.ShowMessageArg(data);
//window.chrome.webview.postMessage(data);
};

async function callCsharp3() {
   var data = $("#txtArg").val();
   var result = await webBrowserObj.GetData(data);
    alert(result);
};

async function callCsharp4() { 

            const propValue = await webBrowserObj.UserName;
            console.log(propValue);
            alert(propValue);
};

 2、C#調(diào)用JS

        private void callJS_Click(object sender, RoutedEventArgs e)
        {
            webView.CoreWebView2.ExecuteScriptAsync("ShowMessage()");          
        }

        private void callJSArg_Click(object sender, RoutedEventArgs e)
        {
            webView.CoreWebView2.ExecuteScriptAsync($"ShowMessageArg('{txtArg.Text}')");
        }

        private async void callJSGetData_Click(object sender, RoutedEventArgs e)
        {
            var jsResult = await webView.CoreWebView2.ExecuteScriptAsync($"GetData('{txtArg.Text}')");
            if (!string.IsNullOrEmpty(jsResult))
            {
                MessageBox.Show(jsResult);
            }            
        }

js里面的代碼

 //2、C#調(diào)用網(wǎng)頁
        var jsVar = '123';
        function Hello() {
            alert('調(diào)用Js' + jsVar);
        };

        function ShowMessage() {
            alert('我是網(wǎng)頁');
        };
        function ShowMessageArg(arg) {
            alert('【我是網(wǎng)頁消息框】' + arg);
        };
        function GetData(arg) {
            return '【我是網(wǎng)頁返回給你】:' + arg;
        };

 

二、縮放問題

   webView.CoreWebView2.Settings.IsZoomControlEnabled = false;

   只能禁止鼠標(biāo)縮放,不能禁止手勢縮放。 見問題 

   另外觸摸到底部門的時(shí)候 有彈跳,暫時(shí)也無法解決。

 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多