我正在尝试为单个TWA应用程序添加子域。我已经完成了从网站到应用程序的资产链接。即使链接完成了,我每次都能看到URL栏。
strings.xml
<resources>
<string name="app_name">XXXX </string>
<string name="asset_statements" translatable="false">
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://www.xxxx.com\"}
},{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"web\",
\"site\": \"https://www.abcd.xxxx.com\"}
}]
</string>
</resources>
雄体
<activity
android:name="android.support.customtabs.trusted.LauncherActivity">
<!-- Edit android:value to change the url opened by the TWA -->
<meta-data
android:name="android.support.customtabs.trusted.DEFAULT_URL"
android:value="https://www.xxxx.com" />
<meta-data
android:name="android.support.customtabs.trusted"
android:value="https://www.abcd.xxxx.com" />
//在android清单中添加了意图过滤器
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
<!-- Edit android:host to handle links to the target URL-->
<data
android:scheme="https"
android:host="www.xxxx.com"/>
<data
android:scheme="https"
android:host="www.abcd.xxxx.com"/>
我可以看到www.xxxx。com没有url栏,但用于www.abcd。xxxx。我可以看到网址栏。
https://developers.google.com/digital-asset-links/tools/generator
我使用下面的链接检查了链接,它返回主机已授予应用程序深度链接
要读取状态栏,需要检查以下两个步骤:
>
您应该为每个子域添加/assetlinks.json
endpoint。有关参考,请参见链接:https://developer.android.com/training/app-links/verify-site-associations#publish-json
在android清单中,您应该添加带有主机值通配符的意图过滤器。注意:主机值应严格以*开头,不包含模式,如https://
<intent-filter android:autoVerify="true">
<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="*.xxxx.com"/>
</intent-filter>
您不必在asset_stations
中明确指定所有子域。有了默认设置就足够了。
应将assetlinks.json文件添加到应用可能访问的每个子域
所以所有这些链接都应该返回资产文件
https://www.xxxx.com/.well-known/assetlinks.json
https://www.abcd.xxxx.com/.well-known/assetlinks.json
还要确保它遵循这些指导原则。
200响应和内容类型应用程序/json
重定向将不起作用
我一直在努力自己解决这个问题,虽然我现在还没有答案,但我已经取得了足够的进展,我可以从我的TWA中更改子域,而不必显示url栏。
我的第一步是将我的资产语句设置为具有通配符:
<string name="asset_statements">
[{
\"relation\": [\"delegate_permission/common.handle_all_urls\"],
\"target\": {
\"namespace\": \"android_app\",
\"site\": \"https://*.newvote.org\"}
}]
</string>
然后我就可以设置我的android了。支持自定义标签。可信的。默认URL
元数据到我的子域上的任何URL,它与我当前的AssetLink配合得很好。json文件位于我的web服务器上。然而,我无法在应用程序中更改我的子域/url,因为这会打开url栏。
在测试过程中,我开始尝试不同的URL(我们的web应用程序有许多子域),我注意到以前测试过的域开始工作。通过将URL设置为DEFAULT\u URL
,应用程序似乎以某种方式将这些设置缓存为可信。我曾尝试卸载应用程序并清除Chrome缓存,但这种情况仍然存在,所以我不确定这是如何工作的。
我可以肯定地为您确认以下设置:
<meta-data android:name="android.support.customtabs.trusted" android:value="@string/app_url" />
将不工作,您正试图在类名上设置元数据,当我探索android.support.customtabs.trusted
类时,我可以看到DEFAULT_URL
是用于URL定义的唯一属性。
到目前为止,我的结论是:我不认为你需要多个资产负债表。我不认为您需要多个元数据字段,也不认为在intent过滤器中设置多个data:host字段会产生预期效果。我认为最重要的是,目前还没有一种受支持的方式来处理TWA中的子域。
刚刚确认,在我测试和安装不同版本的应用程序时,这种神奇的可信URL缓存正在发生。在另一台设备上安装最新版本会恢复为单个受信任的URL,并且子域导航失败。
我想在我的应用程序中添加带有,但一旦我将插件添加到我的应用程序中。yaml,我的应用程序不再运行。下面是错误 失败:生成失败,出现异常。 > 错误:任务执行失败:app:transformDexArchiveWithExternalLibsDexMergerForDebug'。 通用域名格式。Android建设者德兴。DexArchiveMergerException:合并dex存档时出错:/Us
问题内容: 我正在编写一个应用程序,当用户指示我的应用程序这样做时,该应用程序应该能够将小部件(仅文本框)添加到用户电话的主屏幕。我该怎么做? 我知道我可以添加一个应用小部件,但是如何添加更多呢? 问题答案: 从应用程序无法将小部件放置在主屏幕中。只有主屏幕可以将应用程序小部件添加到主屏幕。 相似链接link 但是您可以提供用户从widgetpicker中选择widget。
例如,我知道应用程序包的名称是com.test.abc 我想在我的应用程序中提供一个链接,这样当用户点击该链接时,包名为com.test.abc的应用程序应该从play store下载并安装。
我试图开发一个android应用程序,可以擦除其他应用程序的缓存数据,我试图浏览所有的博客,但没有一个对我有效,我可以通过以下代码清除我的应用程序的缓存 我想清除其他应用程序的缓存,可以任何机构请帮助我,如果我错了请纠正我,提前谢谢。
据甲骨文说,, 返回一个新的完全未来,该完全未来由ForkJoinPool.common池()中运行的任务异步完成,该任务的值通过调用给定的供应商获得。 静态CompletableFuture supplyAsync(供应商-供应商,执行者-执行者)返回一个新的CompletableFuture,该新的CompletableFuture由在给定执行者中运行的任务异步完成,其值通过调用给定供应商获得
我正在用Android开发一个应用程序。我不知道如何从应用程序发送电子邮件?