Reputation: 99
I'm following all steps to convert my PWA into an Android app but it fails to show the URL bar
I've built my PWA I've checked with Lighthouse and scored +90 I've made it native I've obtained SHA256 app signing certificate I've checked my assetlinks.json with digital asset links tool. I've released on Google Play
but I've still had the URL bar at the top of my app
assetlinks.json
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target" : { "namespace": "android_app", "package_name": "org.mysite.mysite",
"sha256_cert_fingerprints": ["..."] }
}]
AndroidManifest.xml
apply plugin: 'com.android.application'
def twaManifest = [
applicationId: 'org.mysite.mysite',
hostName: 'www.mysite.org', // The domain being opened in the TWA.
launchUrl: '/', // The start path for the TWA. Must be relative to the domain.
name: 'MySite', // The name shown on the Android Launcher.
themeColor: '#000000', // The color used for the status bar.
backgroundColor: '#e6086e' // The color used for the splash screen background.
]
android {
compileSdkVersion 28
defaultConfig {
applicationId twaManifest.applicationId
minSdkVersion 16
targetSdkVersion 28
versionCode 19
versionName "1.19"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// The name for the application on the Android Launcher
resValue "string", "appName", twaManifest.name
// The URL that will be used when launching the TWA from the Android Launcher
resValue "string", "launchUrl", "https://" + twaManifest.hostName + twaManifest.launchUrl
// The hostname is used when building the intent-filter, so the TWA is able to
// handle Intents to open https://svgomg.firebaseapp.com.
resValue "string", "hostName", twaManifest.hostName
// This variable below expresses the relationship between the app and the site,
// as documented in the TWA documentation at
// https://developers.google.com/web/updates/2017/10/using-twa#set_up_digital_asset_links_in_an_android_app
// and is injected into the AndroidManifest.xml
resValue "string", "assetStatements",
'[{ \\"relation\\": [\\"delegate_permission/common.handle_all_urls\\"],' +
'\\"target\\": {\\"namespace\\": \\"web\\", \\"site\\": \\"https://' +
twaManifest.hostName + '\\"}}]'
// This attribute sets the status bar color for the TWA. It can be either set here or in
// `res/values/colors.xml`. Setting in both places is an error and the app will not
// compile. If not set, the status bar color defaults to #FFFFFF - white.
resValue "color", "colorPrimary", twaManifest.themeColor
// Sets the color for the background used for the splash screen when launching the
// Trusted Web Activity.
resValue "color", "backgroundColor", twaManifest.backgroundColor
// Defines a provider authority fot the Splash Screen
resValue "string", "providerAuthority", twaManifest.applicationId + '.fileprovider'
}
buildTypes {
release {
minifyEnabled false
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.github.GoogleChrome.custom-tabs- client:customtabs:d08e93fce3'
}
Upvotes: 1
Views: 5244
Reputation: 11
Hey I assume if you have it in the play store it must be wrapped in a skeleton android app ? These are called TWA's or trusted web apps. You could try hiding the status bar
<style>
<item name="android:windowActionBar">false</item>
</style>
if that does not work try
Upvotes: 1
Reputation: 727
To hide address bar & get full screen view of you PWA, you need to have "display": "standalone"
property in your PWA's manifest.json file.
Upvotes: 1