From 3fedfd0f330344238ad406f2e8f54f70a79e7a38 Mon Sep 17 00:00:00 2001 From: xmcp Date: Tue, 20 Aug 2019 01:17:09 +0800 Subject: [PATCH] add pwa promotion --- src/Common.js | 39 +++++++++++++++++++++++++++++++-------- src/Title.js | 2 +- 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/src/Common.js b/src/Common.js index 4f5a098..0c01710 100644 --- a/src/Common.js +++ b/src/Common.js @@ -102,15 +102,38 @@ export class SafeTextarea extends Component { } } +let pwa_prompt_event=null; +window.addEventListener('beforeinstallprompt', (e) => { + console.log('pwa: received before install prompt'); + pwa_prompt_event=e; +}); + export function PromotionBar(props) { - const is_ios=/iPhone|iPad|iPod/i.test(window.navigator.userAgent); - // noinspection JSConstructorReturnsPrimitive - return is_ios ? ( -
-   - 用 Safari 将本网站 添加到主屏幕 更好用 -
- ) : null; + let is_ios=/iPhone|iPad|iPod/i.test(window.navigator.userAgent); + let is_installed=(window.matchMedia('(display-mode: standalone)').matches) || (window.navigator.standalone); + + if(is_installed) + return null; + + if(is_ios) + // noinspection JSConstructorReturnsPrimitive + return !navigator.standalone ? ( +
+   + 用 Safari 把树洞 添加到主屏幕 更好用 +
+ ) : null; + else + // noinspection JSConstructorReturnsPrimitive + return pwa_prompt_event ? ( +
+   + 把网页版树洞 { + if(pwa_prompt_event) + pwa_prompt_event.prompt(); + }}>安装到桌面 更好用 +
+ ) : null; } export class ClickHandler extends PureComponent { diff --git a/src/Title.js b/src/Title.js index 9c9d154..3eccf44 100644 --- a/src/Title.js +++ b/src/Title.js @@ -133,7 +133,7 @@ class ControlBar extends PureComponent { {this.props.show_sidebar( '设置', - )}}>树洞网页版设置 + )}}>网页版树洞设置  /  树洞规范  /