FEATURE: Add web manifest for Chrome users.

This commit is contained in:
Guo Xiang Tan 2015-09-20 23:00:30 +08:00
parent 6c6d3a2159
commit 71eab8f4df
4 changed files with 29 additions and 0 deletions

View File

@ -0,0 +1,15 @@
class ManifestJsonController < ApplicationController
layout false
skip_before_filter :preload_json, :check_xhr
def index
manifest = {
short_name: SiteSetting.title,
display: 'browser',
orientation: 'portrait',
start_url: "#{Discourse.base_uri}/"
}
render json: manifest.to_json
end
end

View File

@ -31,6 +31,7 @@
<%- end %>
<%= render_google_universal_analytics_code %>
<link rel="manifest" href="<%= Discourse.base_uri %>/manifest.json">
<%= yield :head %>
</head>

View File

@ -533,6 +533,7 @@ Discourse::Application.routes.draw do
get "favicon/proxied" => "static#favicon", format: false
get "robots.txt" => "robots_txt#index"
get "manifest.json" => "manifest_json#index", as: :manifest
Discourse.filters.each do |filter|
root to: "list##{filter}", constraints: HomePageConstraint.new("#{filter}"), :as => "list_#{filter}"

View File

@ -0,0 +1,12 @@
require 'spec_helper'
RSpec.describe ManifestJsonController do
context 'index' do
it 'returns the right output' do
title = 'MyApp'
SiteSetting.title = title
get :index
expect(response.body).to include(title)
end
end
end