我做了PWA,并将其放在三个应用程序商店中。 这是我发现的

我的翻译是建立了PWA,并将其发布在3个应用商店中。 这是我学到的

我最近发布了一个名为Chavah Messianic Radio的渐进式Web应用程序,该音乐播放器如Pandora,并将其放在三个应用程序商店(Google Play,iOS App Store,Windows Store)中。







布局过程艰苦而富有启发性。 这是我发现的。

怎么了


您可能会感到惊讶:“您为什么还要将应用程序放入商店? 让它生活在开放的网络上!” 事实是, 用户集中在商店中 。 一代人已经成长,我们已经习惯于在各自的应用商店而不是公共领域中寻找应用。

对于我的应用程序,我有两个主要理由将其存储在商店中:

  1. 用户需求。
  2. Apple在某些移动平台上对Web应用程序的限制。

用户需求:多年来,我的用户一直在问我:“ Chavah是否有应用程序? 我在商店里找不到。” 他们问我这个问题是因为我们教他们在各自的商店中查找应用程序。

直到最近,我回答:

“是的,您不需要应用程序,只需从手机转到站点! 它有效!”

但是我撒谎了。

实际的Web应用程序只能在手机上正常工作。 这导致了我的第二个原因: Apple在某些移动平台上 Web应用程序限制。

像Apple这样的移动平台开发人员对完全使用手机应用程序完全满意 :可以访问您的地理位置,在后台播放声音,获取GPS坐标,读取所有联系人,播放视频和音频而无需与应用程序进行交互,阅读您的邮件,拦截键入的文本,同时执行多个过程,使用麦克风和摄像头,访问照片等等。

苹果公司完全满意。

但是,只有您每年向Apple支付99美元才能获得所有这些特权。

如果您想在旧的Web应用程序中使用上述功能之一,那么该死,Apple就是不允许的。 她甚至不会让您请求许可

对于像潘多拉(Pandora)这样的应用程序,这种可怕的无能为力以不同的方式表现出来 。 从一些小问题开始,例如“ iOS Safari不允许您先不与页面进行交互就播放音频”,再到主要问题,例如“ iOS Safari不允许您在应用程序处于后台或屏幕关闭的情况下播放下一首歌曲”。

而且,此外,当您在文本字段中输入文本时,奇怪的视觉异常会出现在屏幕上的其他地方

通常,为了使我的HTML5音乐应用程序在用户设备上正常运行,有必要将其放在商店中。

进入壁垒


在理想的情况下,在商店中发布应用程序如下所示:

您的网络/云主机或CI提供者:
您已经发布了一个渐进式Web应用程序。 想要在应用商店中发布?

iOS应用商店
谷歌播放
Windows商店

或者,按照Microsoft的实验 ,您的PWA一旦被Bing机器人编入索引,就会自动出现在商店中。

但是,a,我们的世界并不完美。 因此,当我们尝试将Web应用程序放入商店时,我们面临着各种专有的本机垃圾。 每个商店都有进入的障碍:也就是说,将完成的应用程序放置在特定商店中会造成一定的困难。

这里有一些。

费用


  • 苹果 :每年99美元,可将您的应用程序放入iOS应用商店。
  • Google :将您的应用程序放置在Google Play商店中的一次性费用为25美元。
  • 微软 :免费!

不要让我付费以使您的用户可以使用我的应用程序。 我的应用程序丰富了您的平台。 没有良好的应用程序,没有人会需要您的平台。

苹果曾经了解这一点。 当第一部iPhone上市时,史蒂夫·乔布斯(Steve Jobs)坚信,未来将是HTML5,所有应用程序都将以“ web”作为前缀。 没有适用于第三方开发人员的本机iPhone SDK 。 但是,从那以后,苹果的观点发生了变化。

Google要求一次性支付25美元的代币费用。 也许这样做是为了防止垃圾邮件发送者并减少进入商店的真正炉渣应用程序的数量。

尽管质量很高,Microsoft似乎只是试图增加商店中的应用程序数量。

优胜者 :Microsoft。 很难击败自由。

添加本机功能


在理想的情况下,我不必编写任何一行附加代码即可将我的Web应用程序集成到操作系统中。 或者, 正如史蒂夫·乔布斯(Steve Jobs)在2007年所说

Safari引擎完全在iPhone上。 因此,您可以编写外观和行为与iPhone应用程序完全一样的令人难以置信的Web 2.0和Ajax应用程序。 您的所有应用程序都将与iPhone服务完美集成。 他们将能够拨打电话,能够发送邮件,能够在Google地图中搜索地点。

对我来说,这意味着我的Web应用程序应该使用在所有操作系统上都能正常使用的标准HTML5音频工具在后台播放音乐。 也就是说,我的应用程序宣布播放该文件,操作系统将其考虑在内并在锁定屏幕上显示当前歌曲。 同时,我的应用程序使用标准的HTML5音频API进行播放,并且操作系统在锁屏控件上显示:播放,暂停,转到另一个文件,更改音量以及快退。

不幸的是,我们的世界并不完美。 上述所有功能在所有三个平台上均无法立即使用。

我的Web应用程序需要具有在后台播放的功能。 以及从我的CDN下载URL的能力。 听起来合理吧? 如何在锁定屏幕上显示当前歌曲? 并从同一屏幕控制播放? 有多难?

有三种方法:

  • 苹果 :我们不允许网络应用程序宣布此类机会。 您需要编写本机包装程序(例如,使用Cordova)才能与操作系统进行交互。
  • Google :网络正在驱动! 让我们创建一个新的Web标准,以从锁定屏幕播放和控制音频。 在后台玩? 当然了!
  • 微软 :我们将在我们的全局JavaScript命名空间中嵌入我们专有的Windows。* API,然后您就可以执行您想做的事情。

让我们仔细看看每种方法:

iOS商店 。 您的Web应用程序是否需要在后台播放音频? 使用Cordova插件 。 是否需要在锁定屏幕上显示当前歌曲? 使用Cordova插件 。 是否需要从锁定屏幕控制播放? 使用Cordova插件 。 好吧,你明白了。 本质上,Cordova允许Apple将您视为本机应用程序。 而且,由于您不是讨厌的Web应用程序,因此Apple允许您执行本机应用程序允许的所有操作。 为此,您只需要本地技巧-Cordova插件。

Google Play 我只能编写JS代码真是太好了,一切都会正常进行。 无需Cordova插件。 当然,此JS在Android上的Chrome之外的任何地方都无法使用...但是突然之间有一天(在理想的世界中!)所有移动浏览器都实现了这些Web API ...世界变得更加紧密。 我差点唱约翰·列侬的乌托邦嬉皮国歌。

Windows商店 是否想在后台播放音频? 对不起 除非您在我们的专有属性清单中声明您的意图(这很简单)并且不要使用window.Windows.System.MediaMediaTransportControls (不是那么简单)来实现此专有媒体接口, 否则它将不起作用 。 否则,当应用程序进入后台时关闭声音。

优胜者 :Google。 仅用JavaScript编写就足够了,并且操作系统仅从我的应用程序接收信号。

追赶 :Windows。 我仍然可以编写良好的旧JavaScript,但是在Windows下运行时,我必须与嵌入在我的进程中的专有Windows JS API进行通信。 不太吓人。

失败者 :苹果。 他们不在乎Web应用程序。 更糟糕的是:它们似乎真的对Web应用程序有害。 iOS Safari是新的Internet Explorer6。它落后于几乎所有现代Web标准,尤其是在渐进式Web应用程序领域。 这可能是由于商业原因:Web应用程序很难每年收取99美元+应用程序中33%的销售费。 因此,为了使我的Web应用程序在该平台上工作,我不得不假装这是一个本机应用程序。

店铺登记


要在商店中发布PWA,您需要注册,通过业务审核并克服官僚主义的障碍:

  • 苹果 :您必须证明您是合法的注册公司。 我们不是在检查,而是在检查您的第三方
  • Google :想与我们一起发布您的应用程序吗? 我们很高兴。
  • 微软 :想和我们一起发布您的应用程序吗? 我们很高兴。

对我来说,主要问题是通过苹果的合法性测试。

首先,我去了网站并注册为开发人员。 我输入了我的姓名和有关公司的信息(如果您不是注册合法公司,我认为Apple不允许发布该应用程序吗?)。 点击“下一步”。

“您输入的信息与您的D&B个人资料不匹配。”

我的...什么?

搜索了一下Google,发现“ D&B个人资料”是Dun和Bradstreet。 我以前从未听说过它们,但事实证明,苹果使用该公司的服务来验证有关合法公司的信息。

很明显,我的D&B个人资料与我在注册期间输入的内容不匹配。

我还搜索了一下,发现针对开发人员的苹果论坛上满是这样的帖子。 没有人收到明智的答案。

表示支持。 24小时后,他们回复了我的电子邮件以联系D&B。



我决定写信给他们...但是苹果公​​司说要得到回应将需要几天的时间。
当时我想知道我是否可以吐口水。

在等待D&B支持人员的答复时,我决定返回他们的网站,检查我的数据并更新有关公司的信息,他们可能从州数据库中获取了信息。

我已经说过,什么样的污秽? 但是我只想在商店中发布完成的应用程序。

我去了D&B网站以更新我的业务资料。 惊喜! 他们在验证逻辑中有一个JavaScript错误,该错误不允许更新配置文件。 幸运的是,我是一名熟练的开发人员。 在他们的JavaScript中添加了一个中断,单击“提交”,将isValid标志更改为true,您就完成了! 我更新了D&B个人资料。

返回苹果网站供开发人员使用->再试一次。 我正在注册我的公司...

“错误:输入的信息与您的D&B个人资料不匹配。”

您已在家中提交。

我再次写信给苹果。 “哦,从我们系统中的D&B更新信息可能需要24-48小时。”

您知道,因为数字信息从服务器A到服务器B需要两天的时间。

尝试在两天内进行注册...成功了! 我现在是Apple Developer计划的成员,可以提交申请以供批准。

优胜者 :Google和Microsoft。 在这两种情况下,注册都需要5分钟。

失败者 :注册Apple Developer 缓慢又痛苦。 我花了大约一个星期的时间。 我必须与两家不同的他妈的公司取得联系。 并且有必要在国外站点上的JavaScript代码中修复运行时错误,以便绕过他们的客户检查曲线,以便将我的信息发送给Apple,以便将应用程序发送到商店。 好吧,只是……哇。

如果苹果有任何借口,那么这就是他们的501c3非营利计划,由于该计划,非营利组织可以免交每年99美元的费用。 我利用了这一点。 而且,这可能使情况复杂化。

包装,组装和运输应用程序


制作完Web应用程序后,您必须使用魔术将其转换为可以发送以供批准的内容。

  • 苹果 :首先购买Mac。 没有Mac,您将无法构建iOS应用程序。 安装Xcode以及所有这些构建工具和框架,从我们的开发人员程序获取证书,在单独的iTunes Connect网站上创建配置文件,将其链接到Apple Dev中心生成的证书,然后使用Xcode发送您的应用程序。 只是,一,二,三... ...三十七...
  • Google :下载Android Studio,使用它生成安全证书并打包应用程序。 在网站上为Android开发人员下载该软件包。
  • 微软 :使用Visual Studio或这些免费的命令行工具生成.appx包。 在Microsoft Dev Center上下载软件包。

好消息: 有一个免费工具可以将Web应用程序神奇地转换为应用程序包 。 它称为PWABuilder 。 该程序解析URL,说出您需要执行的操作(例如,将桌面图标添加到PWA的Web清单)。 该向导将通过三个步骤帮助您下载包含所有这些魔术的软件包:

  • 对于Windows :生成一个.appx程序包,该程序包可以发送到Windows Dev Center站点。
  • 对于Google :生成包含您的PWA的Java包装器应用程序。 您正在Android Studio中构建一个项目,该项目将生成一个Android包以上传到Android Dev Center网站。
  • 对于Apple :生成可以使用Xcode构建的Xcode项目。 为此,您需要一台Mac。

再次,苹果制造了最多的问题。 我没有Mas。 但是没有它,您将无法为PWA构建Xcode项目。

我不想花几千美元在Apple商店中发布我的免费应用程序。 我不想付出丰富iOS平台的特权。 幸运的是, MacInCloud的费用约为每月25美元。 Mac已经安装了Xcode。 您可以使用Windows Remote Desktop甚至通过Web界面远程连接到它。

但是,仅收集Xcode项目并将其提交到站点是不够的。 我必须在网站上为开发人员生成安全证书,然后在单独的iTunes Connect网站上创建新的应用程序配置文件,然后将软件包发送到那里以供批准。

但这还不是全部:由于Apple讨厌Web应用程序,因此我不得不安装特殊的框架并添加Cordova插件,这些插件使我的应用程序可以在后台播放音乐,将当前歌曲添加到锁屏,控制在那里的播放以及其他操作。

我花了一个星期的时间,以各种技巧将应用程序置于工作状态,然后才能将其发送到商店。

优胜者 :Microsoft。 想象一下:您可以转到从Web应用程序生成软件包的站点。 或者,您甚至可以下载执行所有这些操作的命令行工具。 更喜欢图形界面? 它提供免费的Visual Studio。

追赶 :谷歌。 需要Android Studio,但它是免费的,可在任何地方使用,并且易于使用。

失败者 :苹果。 我不必花几千美元就可以购买Mac,只需要构建应用程序即可。 与Apple Dev Center-> iTunes Connect的混淆看起来像是试图使开发人员脱离现实生活,以将开发人员带入iTunes。 您只需要将所有内容组合到一个Apple Developer Center中即可。

应用测试


当您最终阅读了将您的Web应用程序变成移动应用程序包的所有咒语时,您可能需要先将其发送给测试人员,然后再让大量未受洗的用户访问它。

  • 苹果 :测试人员应在其iOS设备上安装“测试飞行”。 然后将测试人员的电子邮件地址添加到iTunes Connect。 他们每个人都会收到通知,并能够在商店中将其应用之前对其进行测试。
  • Google :在Android开发中心中,添加测试人员地址。 之后,alpha / beta版本将在商店中提供给他们。
  • 微软 :我尚未在此平台上进行测试,所以我什么也不能说。

优胜者 :不清楚。 Apple Test Flight应用程序易于使用。 管理员可以控制alpha / beta的有效性。 Google也不太烦人,甚至不需要单独的应用程序。

应用批准


当产品准备好迎接黄金时段时,您将其提交批准。 该应用程序通过了一个自动检查表(例如,您要运行图标吗?)并由人员检查(“您的应用程序是克隆X,我们拒绝它”)。

  • 苹果 :Xcode会在发布之前警告您构建期间的潜在问题。 检查人员需要24-48小时。
  • Google :有人在家吗? Android Studio并未警告可能的问题,该应用程序在发送后的几分钟内被批准。 我认为没有人检查过它。
  • Microsoft :发送后,快速的自动检查清单显示了与错误图标格式有关的错误。 通过检查清单后,一名员工在四天后批准了我的申请。

优胜者 :Apple。

当然,作为开发人员,我喜欢我的应用程序立即打入Google Play。 但是我怀疑只是因为一个人没有看着他。

至于人工验证,这需要苹果花费最少的时间。 更新也将在24小时内获得批准。

微软以某种方式做到了:最初的批准历时3-4天,而随后的更新则在一天内获得批准。 而为Xbox平台添加的第二个更新又声称需要3-4天。

结论


要制作完成的PWA,使其在移动平台上正常工作并将其放置在商店中,将非常困难且会花费金钱。

优胜者 :Google。 进入其商店的最简单方法是应用程序。 由于操作系统访问的Web API的标准化(您好,最喜欢的navigator.mediaSession),它们还与本机平台实现了最轻松的集成。

追赶 :微软。 最简单的方法是使用魔术将PWA转换为可发送到商店的包装(可以使用PWABuilder网站免费完成!)。 与平台的集成意味着将自动实现window.Windows。API API名称空间进入JavaScript名称空间。 会去。

失败者 :苹果。 不要让我买Mac来构建iOS应用程序。 不要强迫我使用本机包装程序与您的平台集成。 不要让您的安全证书欺骗我,让您的构建工具为我做这些,并将它们自动附加到我的Dev Center帐户中。 不要强迫我使用两个不同的站点:Apple Dev Center和iTunes Connect。

最后的想法:网络总是赢。 他压碎了Flash。 他杀死了Silverlight。 他破坏了本地桌面应用程序。 浏览器是功能强大的客户端平台。 该操作系统已成为启动浏览器和链接硬件的一种方式。

网络将在移动领域赢得胜利。 开发人员不想为主要平台开发三个独立的应用程序。 公司不想为这三个应用程序的开发付费。 - — PWA — .

Apple . Microsoft 1990- 2000-: . PWA , .

: PWA . 5-10 iOS- , Win32 -. Apple , iOS Safari , PWA ( «» PWA iOS Safari 11.1 — PWA ).

PWA, (, ) PWA .

Source: https://habr.com/ru/post/zh-CN412769/


All Articles