דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. C# webview2 navigatetostring- טעינת טקסט בפקד

C# webview2 navigatetostring- טעינת טקסט בפקד

מתוזמן נעוץ נעול הועבר תכנות
9 פוסטים 3 כותבים 411 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • pcinfogmachP מנותק
    pcinfogmachP מנותק
    pcinfogmach
    כתב ב נערך לאחרונה על ידי
    #1

    ניסיתי לעשות פקודת navigate to string בפקד webview בC# wfp
    למעישה זה מחזיר לי שגיאה שהcore לא נטען
    עשיתי EnsureCoreWebView2Async( );
    וגם לא עזר
    מישהו יודע מה צריך לעשות כדי להפעיל פקודה זו כראוי?
    תודה

    גמ"ח מידע מחשבים ואופיס

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      EnsureCoreWebView2Async היא אסינכרונית.
      תקרא לה מייד אחרי הInitializeComponent כדי שזה "יספיק" להיטען,
      או שתוסיף לפניה await (ותוסיף למתודה async).

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      קומפיונטק תגובה 1 תגובה אחרונה
      1
      • קומפיונטק מנותק
        קומפיונטק מנותק
        קומפיונט
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid כתב בC# webview2 navigatetostring- טעינת טקסט בפקד:

        תקרא לה מייד אחרי הInitializeComponent כדי שזה "יספיק" להיטען,
        או שתוסיף לפניה await (ותוסיף למתודה async).

        או לחילופין תקרא לה ככה: ()EnsureCoreWebView2Async().Wait, זה יעצור את הטרד הנוכחי עד שהפונקציה תסתיים.

        (מומלץ מאוד להשתמש ב async / await)

        תגובה 1 תגובה אחרונה
        1
        • pcinfogmachP מנותק
          pcinfogmachP מנותק
          pcinfogmach
          כתב ב נערך לאחרונה על ידי
          #4

          @dovid @קומפיונט

          לא עזר

          גמ"ח מידע מחשבים ואופיס

          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #5

            @pcinfogmach אצלי עובד (השתמשתי לראשונה בחיי בwebView בגללך 🙂 ).
            אז תצטרך לפרט:
            א. איזה חבילה התקנת
            ב. האם ניסית פרייקט נקי וגם לא עובד, ואם כם לצרף קוד מינמלי

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            pcinfogmachP תגובה 1 תגובה אחרונה
            2
            • pcinfogmachP מנותק
              pcinfogmachP מנותק
              pcinfogmach
              השיב לdovid ב נערך לאחרונה על ידי pcinfogmach
              #6

              @dovid
              פרוייקט נקי עובד.
              מסתבר שהבעיה דוקא כשאני עושה בvsto
              מצו"ב המידע שביקשת
              89f0eed2-cd29-49a2-9164-7ff4a691cc16-image.png
              bd0901d2-23b7-4254-b59e-86744b60c28d-image.png

              using System;
              using System.Collections.Generic;
              using System.Linq;
              using System.Text;
              using System.Xml.Linq;
              using Word = Microsoft.Office.Interop.Word;
              using Office = Microsoft.Office.Core;
              using Microsoft.Office.Tools.Word;
              using System.Windows;
              using System.Windows.Forms;
              
              namespace TestVstoWebView
              {
                  public partial class ThisAddIn
                  {
                      private Microsoft.Office.Tools.CustomTaskPane taskPane;
              
                      private void ThisAddIn_Startup(object sender, System.EventArgs e)
                      {
                          UserControl hostControl = new UserControl();
                          hostControl.Load += HostControl_Load;
                          taskPane = this.CustomTaskPanes.Add(hostControl, "תורת אמת");
                          taskPane.Visible = true;
                          taskPane.Width = 450;
                      }
              
                      private void HostControl_Load(object sender, EventArgs e)
                      {
                          Window window = new Window();
                          webviewcontrol webviewcontrol = new webviewcontrol();
                          window.Content = webviewcontrol;
                          window.Show();
                      }
              
                      private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
                      {
                      }
              
                      #region VSTO generated code
              
                      /// <summary>
                      /// Required method for Designer support - do not modify
                      /// the contents of this method with the code editor.
                      /// </summary>
                      private void InternalStartup()
                      {
                          this.Startup += new System.EventHandler(ThisAddIn_Startup);
                          this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
                      }
                      
                      #endregion
                  }
              }
              
              
              <UserControl x:Class="TestVstoWebView.webviewcontrol"
                           xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                           xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                           xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                           xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                           xmlns:local="clr-namespace:TestVstoWebView"
                           xmlns:webview ="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
                           mc:Ignorable="d" 
                           d:DesignHeight="450" d:DesignWidth="800">
                  <Grid>
                      <webview:WebView2 x:Name="webView"/>
                  </Grid>
              </UserControl>
              
              
              using System;
              using System.Collections.Generic;
              using System.Linq;
              using System.Text;
              using System.Threading.Tasks;
              using System.Windows;
              using System.Windows.Controls;
              using System.Windows.Data;
              using System.Windows.Documents;
              using System.Windows.Input;
              using System.Windows.Media;
              using System.Windows.Media.Imaging;
              using System.Windows.Navigation;
              using System.Windows.Shapes;
              
              namespace TestVstoWebView
              {
                  /// <summary>
                  /// Interaction logic for webviewcontrol.xaml
                  /// </summary>
                  public partial class webviewcontrol : UserControl
                  {
                      public webviewcontrol()
                      {
                          InitializeComponent();
                          InitializeWebview();
                      }
              
                      async void InitializeWebview()
                      {
                          await webView.EnsureCoreWebView2Async();
                          webView.NavigateToString("test string");
                      }
                  }
              }
              
              

              יצויין שכנ"ל אותו הקוד בדיוק עובד בפרוייקט רגיל הבעיה מתחילה רק בvsto

              גמ"ח מידע מחשבים ואופיס

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                כתבת "לא עוזר" לא יכולת לומר שיש שגיאה?
                הבעיה מובאת פה ומוסבר שמה שלתוסף חסרה הרשאה לגשת לקבצים, והפתרון שמובא שמה ועזר לשואל הוא להגדיר לתיקיה עם הרשאות כתיבה (עם הפניה לפה), לא הבנתי לגמרי איך, תנסה ככה:

                var loc = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                await CoreWebView2Environment.CreateAsync(userDataFolder: loc);
                await wv.EnsureCoreWebView2Async();
                wv.NavigateToString("https://google.com");
                

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                pcinfogmachP תגובה 1 תגובה אחרונה
                2
                • pcinfogmachP מנותק
                  pcinfogmachP מנותק
                  pcinfogmach
                  השיב לdovid ב נערך לאחרונה על ידי pcinfogmach
                  #8

                  עשיתי ככה ועבד

                   string tempWebCacheDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
                   webView2Environment = await CoreWebView2Environment.CreateAsync(userDataFolder: tempWebCacheDir);
                   await browser.EnsureCoreWebView2Async(webView2Environment);
                   browser.NavigateToString("aaa");
                  

                  אבל כשאני סוגר את וורד אני מקבל שגיאה זו

                  System.InvalidCastException
                    HResult=0x80004002
                    Message=לא ניתן לבצע cast של אובייקט COM מסוג 'System.__ComObject' לסוג ממשק 'Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Controller'. פעולה זו נכשלה מכיוון שקריאת ה- QueryInterface לרכיב ה- COM עבור הממשק עם IID ‏'{4D00C0D1-9434-4EB6-8078-8697A560334F}' נכשלה עקב השגיאה הבאה: No such interface supported (חריג מ-  HRESULT: 0x80004002 (E_NOINTERFACE)).
                    Source=mscorlib
                    StackTrace:
                     at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
                     at Microsoft.Web.WebView2.Core.Raw.ICoreWebView2Controller.get_CoreWebView2()
                     at Microsoft.Web.WebView2.Core.CoreWebView2Controller.get_CoreWebView2() in Microsoft.Web.WebView2.Core\CoreWebView2Controller.cs:line 58
                     at Microsoft.Web.WebView2.Wpf.WebView2.Uninitialize(Boolean browserCrashed)
                     at Microsoft.Web.WebView2.Wpf.WebView2.Dispose(Boolean disposing)
                  
                  

                  גמ"ח מידע מחשבים ואופיס

                  pcinfogmachP תגובה 1 תגובה אחרונה
                  0
                  • pcinfogmachP מנותק
                    pcinfogmachP מנותק
                    pcinfogmach
                    השיב לpcinfogmach ב נערך לאחרונה על ידי pcinfogmach
                    #9

                    פתרון מאולתר:
                    אני יוצר list ששומר את כל הwebviews בתוך thisaddin ואז כך שהתוכנה מתעלמת מכל שגיאה שקורית בסגירת הwebview

                     private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
                     {
                         try
                         {
                             foreach (WebView2 webView in webviewlist)
                             {
                                 webView.Dispose();
                             }
                         }
                         catch (Exception){ }
                     }
                    

                    גמ"ח מידע מחשבים ואופיס

                    תגובה 1 תגובה אחרונה
                    1

                    בא תתחבר לדף היומי!
                    • התחברות

                    • אין לך חשבון עדיין? הרשמה

                    • התחברו או הירשמו כדי לחפש.
                    • פוסט ראשון
                      פוסט אחרון
                    0
                    • דף הבית
                    • קטגוריות
                    • פוסטים אחרונים
                    • משתמשים
                    • חיפוש
                    • חוקי הפורום