Я использую CEFSharp в одном из моих проектов, и пока все работает отлично.Я все еще на V63 CEFSharp (никогда не трогайте работающую систему :-))
Я использую его в VB.NET
Связанный объект создается после инициализации CEFSharp в Public Sub New () следующим образом:
CefSharpSettings.LegacyJavascriptBindingEnabled = True
Dim obj As New BoundObject()
obj.browser = browser
browser.RegisterJsObject("bound", obj)
AddHandler browser.LoadingStateChanged, AddressOf obj.Browser_LoadingStateChanged
Затем я после каждого события «LoadingStateChanged» браузера выполняю сценарий JS с browser.ExecuteScriptAsync ..... это в основном список событий, который будет запускать связанный объект, когдасобытие происходит (например, mousclick).
Это также до сих пор работает на 100% нормально .... событие запускается и вызывает связанный объект и передает переменную в мой код VB.NET через связанный объект.
Теперь моя проблема в том, что после загрузки новой страницы связанный объект теряется.
Список событий будет пытаться вызвать связанный объект, но я просто получаю сообщение об ошибке "Uncaught ReferenceError:граница не определена "
Похоже, что при загрузке новой страницы внутри CEFSharp связанный объект потерян.
Я использую приведенный выше код инициализации также с помощью события FrameLoadEnd.объявление, но оно ведет себя точно так же, как и событие LoadingStateChanged.
Кто-нибудь может подсказать, как я могу обрабатывать (или обновлять) связанный объект всякий раз, когда я загружаю новый веб-сайт?
Спасибо
Обновление: тем временем я попробовал метод привязки V2, как рекомендовано.Используя следующий код для тестирования:
'########### TEST CODE TEST CODE TEST CODE ##################
'try to use new binding V2 method by calling CefSharp.BindObjectAsync:
browser.ExecuteScriptAsync("CefSharp.BindObjectAsync(""myObject"");")
'now register object:
browser.JavascriptObjectRepository.Register("myObject", New BoundObject(), True)
'now do test execution of myObject:
browser.ExecuteScriptAsync("myObject(""test"");")
Но все еще изо всех сил, чтобы заставить его работать: - (