我正在将现有Web应用程序更改为渐进式Web应用程序。大部分都进行得很顺利,我现在做完了。然而,在开发过程中,我注意到一些奇怪的事情。
我的进步:
我创建了Serviceworker来缓存一些文件,一切正常。之后,我创建了清单,并尝试在Android设备上进行调试,以测试“添加到主屏幕”功能,如下所述。这也基本上很好。我能够触发安装并添加图标,没有错误。
问题是:
然而,当启动PWA时,没有启动屏幕,它只是在Chrome中打开的,尽管我的清单声明为独立。名称、背景颜色和图标如此处所述。所以图标本身肯定有问题。我还仔细检查了文件名,确保路径是相对于清单的,清除了缓存,重新安装了服务工作者等等。
我的研究:
我发现,在Application/Manifest下的开发者工具中,图标是在我的笔记本电脑上打开页面时显示的。当我在我的移动设备上打开页面并查看页面时,两个条目都只显示了断文件图标。其他一切都与清单相符。
之后,我在Firebase上托管了该应用程序。这一次,在桌面和手机上一切正常,启动屏幕出现,应用程序以独立方式打开。
因此,PWA试图从localhost:5000/img/app-icon-512捕获图标时,肯定存在一些不起作用的地方。安装过程中的png。但是,从移动浏览器访问该文件是可行的。此外,在安装PWA的消息和主屏幕上显示了一个图标。我想这可能是较小的一个(192px)。
进一步说明:
我的问题:
因此,我很好奇是否有其他人遇到了问题,是否知道解决方案,或者是否可以简单地解释在设备上安装PWA的过程,以及如果图标文件位于具有端口映射的localhost上,为什么它无法访问这些图标文件。如果能够在本地主机上简单地测试启动屏幕就好了。
显示json:
{
"short_name": "MyApp",
"name": "Still MyApp",
"description": "Lorem ipsum dolor",
"start_url": "/",
"scope": "/",
"display": "standalone",
"icons": [
{
"src": "img/app-icon-192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "img/app-icon-512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"theme_color": "#0069b2",
"background_color": "#0069b2"
}
结构
- web
- some files (index etc.) and folders (js/css etc.)
- img
- app-icon-512.png
- app-icon-192.png
- manifest.json
- serviceworker.js
我刚刚注意到它在你的笔记本电脑上工作,当它在Firebase上托管时。我在这里看到的问题是,图像无法从手机中读取,因为图像存储在笔记本电脑中,而不是手机中。我建议您改为在笔记本电脑浏览器和切换设备工具栏上进行测试。通过使用设备工具栏测试,您可以模拟您的PWA在不同大小的手机屏幕上的外观,这比在单一手机上测试要好得多。
我已经成功地为我的网站创建了一个PWA,但当我将它添加到主屏幕并打开应用程序后,闪屏上的图标仍然非常小。 谢谢!
我使用一个空活动为我的应用程序创建了一个启动屏幕,该活动在背景图像中保持可见3秒钟。通常,应用程序在背景图像变为可见之前以白色屏幕启动,然而,有些应用程序已经以“真实”的初始屏幕图像启动。如何实现这一点?
我有一个应用程序,其中有多个活动。 我将初始屏幕设置为当用户从主屏幕(或设备应用程序屏幕)点击应用程序图标时创建并运行的活动。我使用意图过滤器类别“android.intent.category.LAUNCHER”来做到这一点。 我遇到的问题是,如果我启动我的应用程序并导航到与启动屏幕不同的活动,然后我点击设备“主页”按钮,然后从应用程序图标重新启动应用程序。它似乎恢复了我点击设备主页按钮的活动,
首先,我在web上按下“添加到主屏幕”,将应用程序添加到主屏幕,并给出了推送通知的权限。 之后,我从主屏幕卸载了渐进式Web应用程序,我预计通知不会到达,但实际上它得到了通知。 我可以检测卸载并拒绝推送通知吗?
我只是在android的mipmap文件夹和IOS的Assets.xcAssets文件夹中为我的应用图标添加了一个徽标,在drawable文件夹中使用了不同的图像,这样我就可以作为启动屏幕显示,而不是像素图标徽标。然而,现在应用程序图标显示的是闪屏图像和标识,我设计的是不显示。你知道哪个文件夹代表闪屏,哪个文件夹代表Android中的徽标吗?
问题内容: 我想构建一个锁屏更换应用程序。有什么方法可以创建一个侦听器/服务,该监听器/服务将在用户唤醒/解锁屏幕时启动我的应用程序? 问题答案: 请参阅mylockforandroid的源代码, 您将需要使用DeviceAdminReceiver来禁用默认的Android 屏幕锁。 当用户解锁屏幕将and 注册为时启动活动: 将此代码添加到manifast.xml中,将ScreenReceive