Cla*_*son 8 android google-chrome homescreen progressive-web-apps
我有一个网络应用程序,在Android上我想显示一个警告,描述如何将我的应用程序添加到主屏幕.(将其添加到"书签",然后"将其添加到主屏幕"或"添加到主页中的快捷方式").然后屏幕上会显示一个图标,打开我的应用程序.
但是当然我只希望这显示该应用程序是否未添加到主屏幕.
有人知道怎么做这个吗?任何意见,谢谢.
是的你可以。
从技术上讲,虽然在Chrome浏览器标签页中打开的页面无法直接检查主屏幕快捷方式是否存在,但该页面的本地数据(localStorage,IndexedDB)在主屏幕实例和浏览器标签之间共享,因此可以用来传达是否存在主屏幕快捷方式。主屏幕版本。
localStoragelocalStorage在任何标签中阅读)当应用程序处于独立视图(仅当从主屏幕启动时才有可能)时,CSS媒体查询(display-mode: standalone)将匹配。在Javascript中,您可以使用以下方法阅读它:
matchMedia('(display-mode: standalone)').matches
Run Code Online (Sandbox Code Playgroud)
(顺便说一句:这是的非标准iOS版本navigator.standalone,但iOS在主屏幕和Safari之间不会共享状态,因此您不走运)。
但是,我建议您不要使用自定义说明,而要满足Chrome的“渐进式网络应用”标准,然后让Chrome为您进行提示。
小智 6
如果 Web 应用程序已添加到 Android 的主屏幕,则您无法检查该应用程序。最起码到现在。(铬 67)
但是您可以使用display-mode媒体查询判断应用程序是否在独立模式下运行。
将此添加到您的<style>标签中。
@media all and (display-mode: standalone) {
body {
background-color: yellow;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的<script>标签中。
if (window.matchMedia('(display-mode: standalone)').matches) {
console.log('display-mode is standalone');
}
Run Code Online (Sandbox Code Playgroud)
或这个
if (window.navigator.standalone === true) {
console.log('display-mode is standalone');
}
Run Code Online (Sandbox Code Playgroud)
Ahm*_*kri -2
首先你得到设备上的应用程序列表
List<ApplicationInfo> packs = pm.getInstalledApplications(0);
Run Code Online (Sandbox Code Playgroud)
然后你使用getLaunchIntentForPackage()
现在您已经获得了设备上安装的软件包列表,请迭代它们并对每个项目调用 getLaunchIntentForPackage()。
如果返回有效意图,则它存在于启动器上,否则如果返回 null,则包不会从启动器屏幕启动。请注意,主屏幕快捷方式是启动器应用程序的子集。
| 归档时间: |
|
| 查看次数: |
5145 次 |
| 最近记录: |