diff --git a/app/controllers/metadata_controller.rb b/app/controllers/metadata_controller.rb index ab317885a19..9d2332e1268 100644 --- a/app/controllers/metadata_controller.rb +++ b/app/controllers/metadata_controller.rb @@ -13,7 +13,7 @@ class MetadataController < ApplicationController private def default_manifest - { + manifest = { name: SiteSetting.title, short_name: SiteSetting.title, display: 'standalone', @@ -29,5 +29,19 @@ class MetadataController < ApplicationController } ] } + + if SiteSetting.native_app_install_banner + manifest = manifest.merge({ + prefer_related_applications: true, + related_applications: [ + { + platform: "play", + id: "com.discourse" + } + ] + }) + end + + manifest end end diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 178fd7cbd83..41b321f22d3 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -47,6 +47,10 @@ <%= render_google_universal_analytics_code %> + <%- if SiteSetting.native_app_install_banner? %> + + <%- end %> + <%= yield :head %> diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 7ad38baffbe..90074a84883 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -1367,6 +1367,8 @@ en: topic_page_title_includes_category: "Topic page title includes the category name." + native_app_install_banner: "Asks recurring visitors to install Discourse native app." + max_prints_per_hour_per_user: "Maximum number of /print page impressions (set to 0 to disable)" full_name_required: "Full name is a required field of a user's profile." diff --git a/config/site_settings.yml b/config/site_settings.yml index 5943ece7a6a..0a430713bb3 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -1260,6 +1260,8 @@ uncategorized: topic_page_title_includes_category: true + native_app_install_banner: false + user_preferences: default_email_digest_frequency: