mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-25 02:04:23 +00:00
WebBrowserComponent: Added a user agent option to change the browser's user agent
This commit is contained in:
parent
57b07997d3
commit
542312296f
9 changed files with 425 additions and 258 deletions
|
|
@ -175,7 +175,8 @@ DECLARE_JNI_CLASS (AndroidCookieManager, "android/webkit/CookieManager")
|
|||
METHOD (setBuiltInZoomControls, "setBuiltInZoomControls", "(Z)V") \
|
||||
METHOD (setDisplayZoomControls, "setDisplayZoomControls", "(Z)V") \
|
||||
METHOD (setJavaScriptEnabled, "setJavaScriptEnabled", "(Z)V") \
|
||||
METHOD (setSupportMultipleWindows, "setSupportMultipleWindows", "(Z)V")
|
||||
METHOD (setSupportMultipleWindows, "setSupportMultipleWindows", "(Z)V") \
|
||||
METHOD (setUserAgentString, "setUserAgentString", "(Ljava/lang/String;)V")
|
||||
|
||||
DECLARE_JNI_CLASS (WebSettings, "android/webkit/WebSettings")
|
||||
#undef JNI_CLASS_MEMBERS
|
||||
|
|
@ -197,7 +198,7 @@ class WebBrowserComponent::Pimpl : public AndroidViewComponent,
|
|||
public AsyncUpdater
|
||||
{
|
||||
public:
|
||||
Pimpl (WebBrowserComponent& o)
|
||||
Pimpl (WebBrowserComponent& o, const String& userAgent)
|
||||
: owner (o)
|
||||
{
|
||||
auto* env = getEnv();
|
||||
|
|
@ -210,6 +211,9 @@ public:
|
|||
env->CallVoidMethod (settings, WebSettings.setDisplayZoomControls, false);
|
||||
env->CallVoidMethod (settings, WebSettings.setSupportMultipleWindows, true);
|
||||
|
||||
if (userAgent.isNotEmpty())
|
||||
env->CallVoidMethod (settings, WebSettings.setUserAgentString, javaString (userAgent).get());
|
||||
|
||||
juceWebChromeClient = GlobalRef (LocalRef<jobject> (env->NewObject (JuceWebChromeClient, JuceWebChromeClient.constructor,
|
||||
reinterpret_cast<jlong> (this))));
|
||||
env->CallVoidMethod ((jobject) getView(), AndroidWebView.setWebChromeClient, juceWebChromeClient.get());
|
||||
|
|
@ -582,13 +586,13 @@ private:
|
|||
};
|
||||
|
||||
//==============================================================================
|
||||
WebBrowserComponent::WebBrowserComponent (const bool unloadWhenHidden)
|
||||
WebBrowserComponent::WebBrowserComponent (const Options& options)
|
||||
: blankPageShown (false),
|
||||
unloadPageWhenHidden (unloadWhenHidden)
|
||||
unloadPageWhenHidden (! options.keepsPageLoadedWhenBrowserIsHidden())
|
||||
{
|
||||
setOpaque (true);
|
||||
|
||||
browser.reset (new Pimpl (*this));
|
||||
browser.reset (new Pimpl (*this, options.getUserAgent()));
|
||||
addAndMakeVisible (browser.get());
|
||||
}
|
||||
|
||||
|
|
@ -719,6 +723,11 @@ void WebBrowserComponent::clearCookies()
|
|||
}
|
||||
}
|
||||
|
||||
bool WebBrowserComponent::areOptionsSupported (const Options& options)
|
||||
{
|
||||
return (options.getBackend() == Options::Backend::defaultBackend);
|
||||
}
|
||||
|
||||
WebBrowserComponent::Pimpl::JuceWebViewClient16_Class WebBrowserComponent::Pimpl::JuceWebViewClient16;
|
||||
WebBrowserComponent::Pimpl::JuceWebViewClient21_Class WebBrowserComponent::Pimpl::JuceWebViewClient21;
|
||||
WebBrowserComponent::Pimpl::JuceWebChromeClient_Class WebBrowserComponent::Pimpl::JuceWebChromeClient;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue