【실천】Google Play Store에서 PWA 배포 (TWA)
Google Play 스토어 now open for Progressive Web Apps 😱
실태는 "Chrome72에서 구현된 TWA(Trusted Web Activity)를 사용하여 URL 바 없이 PWA 페이지를 열 수 있는 Android 앱을 개발할 수 있게 되었다"는 것입니다.
검증이 시작되면 실제로 TWA에서 PWA를 GooglPlay 스토어에 공개해 보았으므로 절차를 소개하고 싶습니다.
실제 안드로이드 프로젝트는 GitHub에서도 공개하고 있습니다.
htps : // 기주 b. 이 m / zp로 v / QR-와
환경
AndroidStudio는 ver3.3.1을 사용합니다.
공개하는 PWA는 이쪽의 QR코드 리더입니다.
htps // qr. zp 여. 아 p
개발에서 공개까지의 절차
1. AndroidStudio에서 새로운 프로젝트 만들기
먼저 AndroidStudio에서 새 프로젝트를 만듭니다.
여기서의 포인트는 이하 2개입니다.
2. TWA 지원 라이브러리 활성화
이 단계 2와 다음 단계 3은 GitHub의 commit 로그도 함께 보면 알기 쉽다고 생각합니다.
htps : // 기주 b. 이 m/zp 여에서 v/QR-와 ぁ/꽁치 t/f9b세cb5f39아 515948c272d00fdc671fc60431b4
프로젝트 레벨
build.gradle
의 리포지토리에 JitPack을 추가합니다.allprojects {
...
repositories {
...
maven { url "https://jitpack.io" }
}
}
Module 레벨
build.gradle
의 컴파일 옵션으로 Java8 를 유효하게 한다.android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
모듈 레벨
build.gradle
종속성에 TWA 지원 라이브러리를 추가합니다.dependencies {
...
implementation 'com.github.GoogleChrome.custom-tabs-client:customtabs:3a71a75c9f'
}
3. 앱측 TWA 설정
문자열 리소스로 Digital Asset Links 정보를 정의합니다.
<resources>
...
<string name="asset_statements">
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://qr.zpro.app\"}
}]
</string>
</resources>
AndroidManifest.xml
에 TWA의 메인 Activity와 Digital Asset Links의 meta 데이터를 추가한다.<application ... >
<meta-data
android:name="asset_statements"
android:resource="@string/asset_statements" />
<activity
android:name="android.support.customtabs.trusted.LauncherActivity">
<meta-data
android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://qr.zpro.app" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="https"
android:host="qr.zpro.app"/>
</intent-filter>
</activity>
</application>
4. PWA측의 TWA 설정
릴리스 빌드에 사용할 Keystore 파일에서 SHA256 Fingerprint를 가져옵니다.
// 取得コマンド
keytool -list -v -keystore Keystoreファイルパス -alias エイリアス名 -storepass パスワード -keypass パスワード
Digital Asset Links 선언 생성기에 Android 앱의 패키지 ID와 SHA256 Fingerprint를 입력하고 생성 된 문자열을
assetlinks.json
로 저장합니다.PWA의 도메인 루트에
.well-known
폴더를 만들고 그 안에 assetlinks.json
를 넣습니다.5. 빌드하여 GooglePlay 스토어에 등록
앱 아이콘 등 필요에 따라 변경 후 릴리스 빌드를 만들어 GooglePlay 스토어에 등록합니다.
TWA를 사용한다고 해서 특별한 절차는 특별히 없습니다.
이상이 TWA에서 PWA를 GooglPlay 스토어에 공개하는 순서입니다.
TWA의 거동
실제로 공개한 앱은 여기입니다.
htps : // p ぁ y. 오, ぇ. 이 m / s 취해 / 아 ps /에서 원하는 ls? 아니 d = 아 p. zp 여. qr
앱 시작은 이런 느낌입니다.
PWA의 기동과는 약간 동작이 다릅니다만, 풀 스크린으로 Web 페이지를 표시할 수 있어 브라우저와 localStorage를 공유할 수 있는 것을 확인할 수 있었습니다.
[추기]
현재 게재중인 앱은 TWA의 거동을 PWA에 전해 가는(기동편)에서 개선을 추가 한 것입니다.
요약
현상의 순서나 거동으로부터 보고 「GooglePlay 스토어로 PWA가 전달할 수 있게 되었다!」라고 하는 것은 조금 다를까 생각합니다만, WebView와 ChromeCustomTabs의 이점을 겸비한 새로운 수법으로 Web 사이트의 앱화를 할 수 있게 되었습니다.
공개하는 수고 자체는 WebView 개발과 그다지 변하지 않고, 현재라고 WebView 쪽이 취급하기 쉽다고 느끼고 있습니다만, 로그인이 필요한 Web 서비스등에서는 세션이나 스토리지 공유는 큰 이점이라고 생각하기 때문에, 선택지로서 개미 그렇다고 생각했습니다.
Reference
이 문제에 관하여(【실천】Google Play Store에서 PWA 배포 (TWA)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zprodev/items/181c1c8f19bc0beb1183텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)