【问题标题】:How to set a whitelist in web view with Android Management API如何使用 Android Management API 在 Web 视图中设置白名单
【发布时间】:2019-11-08 21:06:14
【问题描述】:

我正在使用 Chrome 托管配置在我的策略中使用此代码设置白名单:

{
    "packageName": "com.android.chrome",
    "managedConfiguration": {
        'URLBlacklist': ['*'],
        'URLWhitelist': ['chrome://*', 'google.com', 'stackoverflow.com'],
        'ForceGoogleSafeSearch': True,
        'NTPContentSuggestionsEnabled': False,
    }
}

现在,在 Chrome enterprise docs 中,它说有一种方法可以将相同的设置应用于具有 com.android.browser:URLBlacklist 限制的 Android Web 视图,但它没有说明我将把它放在我的策略中的哪个位置。

以下代码不起作用:

{
    "packageName": "com.android.chrome",
    "managedConfiguration": {
        'com.android.browser:URLBlacklist': ['reddit.com', 'youtube.com'],
        'com.android.browser:URLWhitelist': ['stackoverflow.com', 'google.com']
    }
}

它在手机上的 chrome://policy 中显示错误。

com.android.browser 甚至不是一个真正的应用程序。

我需要在哪里使用此com.android.browser:URLBlacklist 来对手机上的所有网络视图应用限制?

【问题讨论】:

  • 您是否尝试在com.google.android.webview 而不是com.android.chrome 上设置此配置?
  • @Fred 那行不通。我可以提出两个原因:1)com.google.android.webview 不支持托管配置(根据 Play Store for Work 页面)。 2)Android系统WebView是disabled when Chrome is installed,所以黑名单要经过Chrome
  • 有道理,所以配置需要应用到com.android.chrome。查看AwPolicyProvider.java,Chrome 似乎在在 web 视图中使用策略之前删除了前缀。现在还不清楚为什么你的方法不起作用。

标签: android android-webview android-management-api


【解决方案1】:

您必须为每个应用单独设置黑名单/白名单。

例如:

{
    "packageName": "com.jetblue.JetBlueAndroid",
    "managedConfiguration": {
        'com.android.browser:URLBlacklist': ['*'],
        'com.android.browser:URLWhitelist': ['jetblue.com']
    }
}

此代码阻止 JetBlue 应用程序中除 JetBlue.com 之外的所有域

有一些事情需要注意: 1.注意不要阻止应用程序需要运行的任何域(包括登录页面等)。 2. 如果应用使用直接 API 来显示内容,而不是 Web 视图,则这些限制将不适用。

【讨论】:

  • 我仍然想知道的一件事:是否有一种内置方法可以将限制应用于所有应用程序?
  • 此功能存在一个重大错误。如果用户在打开 Chrome 的任何应用程序中点击链接,则有时会加载该页面,即使它本来是要被阻止的。该页面上的任何后续链接都将被正确阻止,但这仍然是一个重要的解决方法。
猜你喜欢
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 2012-10-22
  • 2011-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多