Add RemoveScriptMessage handler and return bool

This commit is contained in:
Tobias Taschner 2021-02-26 16:50:48 +01:00
parent c3d0d7d000
commit 04d22cc9f6
No known key found for this signature in database
GPG Key ID: AE6ECD71294F87FD
3 changed files with 12 additions and 3 deletions

View File

@ -89,7 +89,8 @@ public:
virtual bool IsEditable() const wxOVERRIDE;
bool RunScript(const wxString& javascript, wxString* output = NULL) const wxOVERRIDE;
virtual void AddScriptMessageHandler(const wxString& name) wxOVERRIDE;
virtual bool AddScriptMessageHandler(const wxString& name) wxOVERRIDE;
virtual bool RemoveScriptMessageHandler(const wxString& name) wxOVERRIDE;
//Virtual Filesystem Support
virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler) wxOVERRIDE;

View File

@ -182,7 +182,8 @@ public:
virtual void RegisterHandler(wxSharedPtr<wxWebViewHandler> handler) = 0;
virtual void Reload(wxWebViewReloadFlags flags = wxWEBVIEW_RELOAD_DEFAULT) = 0;
virtual bool RunScript(const wxString& javascript, wxString* output = NULL) const = 0;
virtual void AddScriptMessageHandler(const wxString& WXUNUSED(name)) { }
virtual bool AddScriptMessageHandler(const wxString& WXUNUSED(name)) { return false; }
virtual bool RemoveScriptMessageHandler(const wxString& WXUNUSED(name)) { return false; }
virtual void SetEditable(bool enable = true) = 0;
void SetPage(const wxString& html, const wxString& baseUrl)
{

View File

@ -394,10 +394,17 @@ bool wxWebViewWebKit::RunScript(const wxString& javascript, wxString* output) co
return true;
}
void wxWebViewWebKit::AddScriptMessageHandler(const wxString& name)
bool wxWebViewWebKit::AddScriptMessageHandler(const wxString& name)
{
[m_webView.configuration.userContentController addScriptMessageHandler:
[[WebViewScriptMessageHandler alloc] initWithWxWindow:this] name:wxCFStringRef(name).AsNSString()];
return true;
}
bool wxWebViewWebKit::RemoveScriptMessageHandler(const wxString& name)
{
[m_webView.configuration.userContentController removeScriptMessageHandlerForName:wxCFStringRef(name).AsNSString()];
return true;
}
void wxWebViewWebKit::LoadURL(const wxString& url)