我如何在Google Play的Svelte上发布PWA

我喜欢不同方向的金属音乐。 为了跟踪新产品,我制作了一个解析器,用于查找新专辑并将其放入数据库中。 在存在该应用程序期间,尽管它离理想状态还差得很远,但我几乎没有碰过解析器,但是前端重做了几次。


metalz.web.app

在猫底下是一个故事,讲述了我如何将应用程序从react-native复制到Svelte并发布到Google Play上。


应用程式建立


Metalz的第一个版本是用reactmobx-state-tree编写的。 然后,我想将该应用程序放到Google Play上,并使用expo模板重新制作react-native上的所有内容。 当Google冒着被删除的风险要求使用64位版本时,我重写了Svelte上的所有内容。 为了进行比较,react的构建重约300kb,Svelte的构建重约90kb。 我没有执行任何装配优化,只有标准模板。


广告广告


在本机应用程序中,我使用了ad-mob广告,但它不支持Web平台。 我决定连接AdSence,但没有通过审核。 拒绝表明我的网站上没有内容,并提供了撰写高质量文章的建议。 而且,由于我没有任何文章,因此上诉也失败了。 我不得不更换广告提供商。 选择权落在Yandex广告网络上。 我制作了Svelte组件,在其中的模块中取出了广告阻止计数器。 它是该组件所有实例的一个,因此可以在无限滚动的功能区中使用此选项。


斯维尔特
<script context="module"> let id = 1; </script> <script> import { onMount } from "svelte"; const internalId = id; onMount(() => { id += 1; (function(w, d, n, s, t) { w[n] = w[n] || []; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "RA--1", renderTo: `yandex_rtb_R-A--${internalId}`, async: true }); }); t = d.getElementsByTagName("script")[0]; s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(window, window.document, "yandexContextAsyncCallbacks"); }); </script> <div id={`yandex_rtb_R-A--${internalId}`} /> 

添加PWA功能


编写应用程序后,我对程序集有疑问。 精简模板无法将哈希添加到包中。 我没有设置收集器,但立即选择了Sapper 。 开箱即用,我得到了一个带有散列,SSR,PWA和路由的捆绑程序集。 您可以在文档中阅读更多内容


建立APK


事实证明,构建应用程序非常简单。 我用了这个指示
不要忘记用自己的图标替换图标,本教程中未提及。
内部带有PWA的apk大小约为1.3mb。 反应本机的包重约16.4mb。 我没有执行任何程序集优化。


发布到Google Play


在发送了用于验证的申请后,我收到了由于违反条件而被拒绝发布的消息。


应用程序MetalZ的状态-新的金属音乐发布(com.az67128.metalz):由于违反政策而从Google Play暂停

在审核过程中,我们发现您的应用违反了Webviews和Affiliate Spam政策。 未经网站所有者或网站管理员的许可,我们不允许应用程序的主要目的是吸引会员访问网站或提供网站的网络视图。

接下来,我提起上诉,表明已执行TWA确认程序,并附加了“语句列表生成器和测试器”屏幕以及指向assetlinks.json文件的链接。
几天后,该应用程序已解锁。 这样,我得到了支持的建议:


将来,如果您有使用第三者知识产权的许可证明,则可以使用此表格提前将其提交给我们的团队。 该链接也可以在“商品详情”部分的“商品详情”页面上找到。

因此,如果您打算发布PWA并希望避免出现问题,请提前发送域所有权证明。


如果您打算在应用程序中做广告,则在没有使用政策的情况下可能会拒绝发布。 应用程序隐私策略生成器对我有所帮助。


结论


在Google Play上发布PWA应用程序比我预期的要容易。 从专业人士那里,我得到了:


  • 重量轻的应用;
  • 一个代码库;
  • 没有Google Play的更新。

苗条的应用程序源代码可以在gitlab'e中查看

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


All Articles