搜索
首页web前端css教程如何将进步的Web应用程序进入Google Play商店

如何将进步的Web应用程序进入Google Play商店

PWA(Progressive Web应用程序)已经与我们在一起了一段时间。但是,每次我尝试向客户解释时,同样的问题都会弹出:“我的用户可以使用应用商店安装应用程序吗?”传统上,答案是否定的,但是Chrome 72发生了变化,它发了一项名为TWA(可信赖的网络活动)的新功能。

受信任的Web活动是一种使用基于自定义选项卡的协议将您的Web应用程序内容(例如PWA)与您的android应用程序集成的新方法。

在本文中,我将使用Netguru现有的PWA(Wordguru),并逐步说明需要做些什么才能使应用程序可用并准备直接从Google Play App Store中安装。

我们在这里介绍的某些内容对那里的任何Android开发人员都可能很愚蠢,但是本文是从前端开发人员的角度写的,尤其是那些从未使用过Android Studio或创建Android应用程序的文章。另外,请注意,由于它仅限于Chrome 72,因此我们在这里涵盖的许多内容仍然非常实验。

步骤1:设置一个值得信赖的网络活动

设置TWA并不需要您编写任何Java代码,但是您需要拥有Android Studio。如果您以前开发了iOS或Mac软件,那么这很像Xcode,因为它提供了一个旨在简化Android开发的开发环境。因此,抓住它,在这里见我。

在Android Studio中创建一个新的TWA项目

您得到了Android Studio吗?好吧,我实际上听不到或见到你,所以我假设你做到了。继续打开它,然后单击“启动新的Android Studio项目”。从那里,让我们选择“不添加活动”选项,使我们能够配置项目。

配置相当简单,但是知道什么是什么总是很高兴的:

  • 命名应用程序的名称(但我敢打赌,您知道)。
  • 软件包名称: Play商店中的Android应用程序标识符。它必须是唯一的,因此我建议以相反顺序使用PWA的URL(例如com.netguru.wordguru)。
  • 保存位置:该项目将在本地存在。
  • 语言:这使我们能够选择一种特定的代码语言,但是不需要这一点,因为您知道,我们的应用程序已经编写了。我们可以将其留在Java,这是默认选择。
  • 最小API级别:这是我们正在使用的Android API的版本,并且支持库(下一步我们将介绍)。让我们使用API​​ 19。

这些选项下面有很少的复选框。这些对我们来说是无关紧要的,因此请将它们全部放置,然后继续完成。

添加TWA支持库

Twa s需要一个支持库。好消息是,我们只需要修改两个文件即可填写该要求,并且两个都活在同一项目目录中:Gradle脚本。两者都被命名为build.gradle,但是我们可以通过查看括号中的描述来区分哪个。

有一个名为Jitpack的Git软件包经理,专门为Android应用程序制作。它非常健壮,但最重要的是,它使发布我们的Web应用程序变得轻而易举。这是一项付费服务​​,但我想说,如果这是您第一次进入Google Play商店,这是值得的。

编辑器注意:这不是Jitpack的赞助插件。值得呼唤,因为这篇文章几乎不熟悉Android应用程序或向Google Play提交应用程序,并且在管理直接连接到商店的Android App Repo的摩擦较小。也就是说,这完全不是必需的。

进入Jitpack后,让我们将我们的项目连接到它。打开该build.gradle(project:wordguru)文件,我们刚刚查看并告诉它为应用程序存储库查看jitpack:

 AllProjects {
  存储库{
    ...
    maven {url'https://jitpack.io'}
    ...
  }
}

好的,现在让我们打开其他build.gradle文件。在这里,我们可以添加该项目的任何必要依赖项,并且确实有一个:

 // build.gradle(模块:应用程序)

依赖项{
  ...
  实现'com.github.googlechrome:custom-tabs-client:a0f7418972'
  ...
}

TWA库使用Java 8功能,因此我们需要启用Java 8。为此,我们需要在同一文件中添加编译:

 // build.gradle(模块:应用程序)

安卓 {
  ...
  compileoptions {
    Sourcecepatibility Javaversion.version_1_8
    targetCompatibility Javaversion.version_1_8
  }
  ...
}

我们还将在下一节中介绍称为Subtestplaceplaceholder的变量。现在,让我们添加以下内容以定义应用程序的托管位置,默认URL和应用程序名称:

 // build.gradle(模块:应用程序)

安卓 {
  ...
  DefaultConfig {
    ...
    清单持有人= [
      主机名:“ wordguru.netguru.com”,
      defaulturl:“ https://wordguru.netguru.com”,
      启动名称:“ Wordguru”
    这是给出的
    ...
  }
  ...
}

在Android应用清单中提供应用程序详细信息

每个Android应用都有一个Android应用清单(AndroidManifest.xml),该应用程序提供了有关应用程序的基本详细信息,例如与其与操作系统相关的操作系统,包装信息,设备兼容性以及许多其他帮助Google Play显示应用程序要求的内容。

我们在这里真正关心的是活动()。这就是实现用户界面的原因,并且是“可信赖的网络活动”中“活动”所必需的。

有趣的是,我们在Android Studio中设置项目时选择了“无活动”选项,这是因为我们的清单是空的,并且仅包含应用标签。

让我们首先打开manfifest文件。我们将用我们自己的应用程序ID和标签替换现有的软件包名称,并用上一节中定义的清单持有人变量的值替换。

然后,我们将通过在标签中添加标签来实际添加TWA活动。

<!-- manifests/AndroidManifest.xml -->

 //突出显示

  

     //突出显示

      <meta-data android android.support.customtabs.trusted.default_url></meta-data> //突出显示

      <!-- This intent-filter adds the TWA to the Android Launcher -->
      <intent-filter>
        <action android android.intent.action.main></action>
        
      </intent-filter>

      <!--
        This intent-filter allows the TWA to handle Intents to open
        our hostName
        -->
      <intent-filter android true>
        <action android android.intent.action.view></action>
        
        
         //突出显示
      </intent-filter>
    
  

我的朋友们是第1步。让我们继续前进。

步骤2:验证网站与应用程序之间的关系

TWA需要在Android应用程序和PWA之间建立连接。为此,我们使用数字资产链接。

连接必须在两端设置,其中TWA为应用程序,而PWA是网站。

为了建立这种联系,我们需要再次修改清单持有人。这次,我们需要添加一个称为AssetStatements的额外元素,以保留有关PWA的信息。

 // build.gradle(模块:应用程序)

安卓 {
  ...
  DefaultConfig {
    ...
    清单持有人= [
      ...
      AssetStatements:'[{“ Relation”:[“ delegate_permission/common.handle_all_urls”],'  
        '“ target”:{“命名空间”:“ web”,“站点”:“ https://wordguru.netguru.com”}}}}}'''
      ...
    这是给出的
    ...
  }
  ...
}

现在,我们需要在应用程序标签中添加一个新的元数据标签。这将告知我们要建立与清单持有人指定的申请的联系的Android应用程序。

<!-- manifests/AndroidManifest.xml -->



  <application>
    ...
      <meta-data android asset_statements></meta-data>
    ...
  </application>

就是这样!我们刚刚建立了网站关系的申请。现在,让我们跳入网站转换为应用程序。

为了在相反的方向上建立连接,我们需要创建一个.json文件,该文件将在应用程序 /.well-newonn/assetlinks.json路径中可用。可以使用Android Studio内置的生成器来创建该文件。看,我告诉您Android Studio有助于简化Android开发!

我们需要三个值来生成文件:

  • 托管站点域:这是我们的PWA URL(例如https://wordguru.netguru.com/)。
  • 应用程序包名称:这是我们的TWA软件包名称(例如Com.netguru.wordguru)。
  • App软件包指纹(SHA256):这是基于Google Play商店密钥库生成的唯一加密哈希。

我们已经有了第一和第二值。我们可以使用Android Studio获得最后一个。

首先,我们需要生成签名的APK。在Android Studio中,转到:构建→生成签名的捆绑包或APK→APK

接下来,如果您已经有一个,请使用现有的密钥库。如果您需要一个,请首先转到“创建新……”。

然后让我们填写表格。请务必记住这些凭据,因为这些凭据是将要签署的应用程序,并确认您对申请的所有权。

这将创建一个生成应用程序包指纹(SHA256)所需的密钥库文件。该文件非常重要,因为它可以作为证明您是应用程序的所有者。如果此文件丢失,您将无法对商店中的应用程序进行任何进一步的更新。

接下来,让我们选择捆绑包的类型。在这种情况下,我们选择“发布”,因为它为我们提供了生产捆绑包。我们还需要检查签名版本。

这将生成我们的APK,稍后将用于在Google Play商店中创建版本。创建密钥库后,我们可以使用它来生成所需的应用程序包指纹(SHA256)。

让我们回到Android Studio,然后转到工具→应用链接助理。这将打开一个侧边栏,该侧边栏显示了在应用程序和网站之间建立关系所需的步骤。我们想进入步骤3,“声明网站协会”并填写所需的数据:站点域和应用程序ID。然后,选择上一步中生成的密钥库文件。

填写表单后,按“生成数字资产链接文件”,将生成我们的AssetLinks.json文件。如果我们打开它,它应该看起来像这样:

 [{{
  “关系”:[“ delegate_permission/common.handle_all_urls”],
  “目标”: {
    “名称空间”:“ android_app”,
    “ package_name”:“ com.netguru.wordguru”,
    “ SHA256_CERT_FINGERPRINTS”:[8a:f4:........:29:28“]
  }
]]

这是我们需要在应用程序 /.well-newone /assetlinks.json路径中提供的文件。我不会描述如何使其在该路径上可用,因为它过于特定于项目,并且超出了本文的范围。

我们可以通过单击“链接并验证”按钮来测试关系。如果一切顺利,我们将获得“成功!”的确认。

耶!我们已经在我们的Android应用程序和PWA之间建立了双向关系。一切都从这里下坡,所以让我们开回家。

步骤3:获取所需资产

Google Play需要一些资产来确保该应用在商店中很好地显示。具体来说,这就是我们需要的:

  • 应用图标:我们需要各种尺寸,包括48×48、72×72、96×96、144×144、192×192…或我们可以使用自适应图标。
  • 高分辨率图标:这是整个商店中使用的512×512 PNG图像。
  • 功能图形:这是Google Play在应用程序详细信息视图上使用的1024×500 JPG或24位PNG(无alpha)横幅。
  • 屏幕截图: Google Play将使用这些屏幕截图来展示用户在下载之前可以查看的应用程序的不同视图。

拥有所有这些,我们可以进入Google Play商店开发人员控制台并发布应用程序!

步骤4:发布到Google Play!

让我们转到最后一步,最后将我们的应用推到商店。

使用我们之前生成的APK(位于AndroidStudioprojects目录中),我们需要转到Google Play控制台以发布我们的应用程序。我不会描述在商店中发布应用程序的过程,因为向导使它变得非常简单,并且在整个过程中提供了分步指导。

审查和批准该应用程序可能需要几个小时,但是当它的申请最终出现在商店中。

如果找不到APK,则可以通过构建→生成签名的捆绑包 / apk→构建APK ,传递我们现有的密钥库文件并填充我们生成密钥库时使用的别名和密码来创建一个新的APK。生成APK后,应出现通知,您可以通过单击“定位”链接来获取文件。

恭喜,您的应用在Google Play中!

就是这样!我们只是将PWA推到Google Play商店。这个过程并不像我们想要的那样直观,但是尽管如此,当您看到您的应用在野外显示时,它绝对可以做到,并且相信我,它在最后会填充。

值得指出的是,此功能仍然是非常早期的阶段,我认为它在一段时间内进行了实验。我建议您暂时使用您的应用程序的生产版本,因为这仅适用于Chrome 72及更高版本 - 此之前的任何版本都可以安装该应用程序,但是该应用程序本身将立即崩溃,这不是最佳的用户体验。

此外,官方发布Custom-Tabs-client尚未支持TWA。如果您想知道为什么我们使用RAW GITHUB链接而不是官方图书馆版本,那就是原因。

以上是如何将进步的Web应用程序进入Google Play商店的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
迭代使用样式组件的React设计迭代使用样式组件的React设计Apr 21, 2025 am 11:29 AM

在一个完美的世界中,我们的项目将拥有无限的资源和时间。我们的团队将开始使用经过深思熟虑的UX设计进行编码。

哦,制作三角形面包丝带的许多方法!哦,制作三角形面包丝带的许多方法!Apr 21, 2025 am 11:26 AM

哦,制作三角形面包屑丝带的许多方法

CSS指南中的SVG属性CSS指南中的SVG属性Apr 21, 2025 am 11:21 AM

SVG具有自己的一套元素,属性和属性集,以至于内联SVG代码可能会变得漫长而复杂。通过利用CSS和SVG 2规范的一些即将到来的功能,我们可以减少该代码以进行清洁标记。

交叉观察者的一些功能用途可以知道何时在元素中查看交叉观察者的一些功能用途可以知道何时在元素中查看Apr 21, 2025 am 11:19 AM

您可能不知道这一点,但是JavaScript最近偷偷地积累了许多观察者,而交叉观察者是其中的一部分

恢复偏爱减少运动恢复偏爱减少运动Apr 21, 2025 am 11:18 AM

我们可能不需要扔掉所有CSS动画。请记住,这更喜欢减少动作,而不喜欢不运动。

如何将进步的Web应用程序进入Google Play商店如何将进步的Web应用程序进入Google Play商店Apr 21, 2025 am 11:10 AM

PWA(Progressive Web应用程序)已经与我们在一起了一段时间。但是,每次我尝试向客户解释它时,同样的问题都会出现:“我的用户会成为

处理HTML的最简单方法包括处理HTML的最简单方法包括Apr 21, 2025 am 11:09 AM

这对我来说非常令人惊讶,HTML从未在其中包含其他HTML文件。似乎也没有任何东西

更改悬停在悬停的SVG的颜色更改悬停在悬停的SVG的颜色Apr 21, 2025 am 11:04 AM

使用SVG有很多不同的方法。取决于哪种方式,在不同状态或条件下重新定制该SVG的策略 - 悬停,

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具