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: