- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经按照此处的官方 Google 指南使用 TWA 构建了 PWA 并生成了 APK - https://developers.google.com/web/updates/2019/02/using-twa
发生的事情是,当将 Chrome 以外的其他浏览器设置为默认浏览器时,行为是不可预测的。例如:在默认使用 MI 浏览器的小米手机上,我的应用程序就像一个快捷方式一样工作,页面只是加载到浏览器的一个选项卡中。这部手机安装了 Chrome,但我的应用程序仍然使用默认浏览器来呈现我的 PWA。
官方文档说明如下:
Today, if the user's version of Chrome doesn't support Trusted Web activities, Chrome will fall back to a simple toolbar using a Custom Tab. It is also possible for other browsers to implement the same protocol that Trusted Web activities use. While the host app has the final say on what browser gets opened, we recommend the same policy as for Custom Tabs: use the user's default browser, so long as that browser provides the required capabilities.
虽然指南有这一段,但我找不到任何关于如何为我的 PWA 设置首选浏览器的文档
最佳答案
不建议强制 Chrome 作为浏览器来处理受信任的 Web Activity ,因为 number of browsers that support Trusted Web Activity is growing并且开发人员应该尝试尽可能地尊重用户的浏览器选择。
implementation在android-browser-helper中选择浏览器将:
或者,开发人员可以选择将数字 2 和 3 替换为 WebView fallback implementation ,即使在支持的功能集上存在权衡。
关于以下内容:
on a Xiaomi phone where MI Browser is the default, my app works just as a shortcut & the page just loads in one of the tabs of the browser. This phone had Chrome installed, but my app still used the default browser to render my PWA.
这里可能会发生一些事情:
对于 1,解决方案是更新 Chrome,一切正常。否则,启用 WebView 回退。
对于 2,听起来需要的是一个“禁止列表”,以避免使用已知声明支持但不支持的浏览器。我建议在 https://github.com/GoogleChrome/android-browser-helper/ 提交功能请求
对于 3,请在 https://github.com/GoogleChrome/android-browser-helper/ 提交错误
更新:我安装了MI Browser通过 Bubblewrap 生成的项目. MI Browser 未声明对 Trusted Web Activity 的支持,并且 Chrome 按预期打开。我倾向于与上述 (1) 相关的问题。
最后,可以为 Trusted Web Activity 实现您自己的提供商选择器,您可以在其中维护一个“禁止列表”,而在 Android 浏览器帮助程序中未实现自动方式。参见 this sample了解详情。
关于android - PWA 与 TWA : How to force Chrome instead of default browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55531080/
在 Firefox 扩展的 Javascript 中,您可以调用 gBrowser.getBrowserForTab但是没有gBrowser.getTabForBrowser .所以我写了自己的并且它
在问这个可能含糊不清的问题之前,我搜索了 SO,发现许多对“现代浏览器”的引用,但没有定义。由于这是一个被广泛使用和引用的术语,令我惊讶的是我在 Internet 上找不到定义甚至描述。 那么,在 2
更新:老问题仅适用于 IE11 预览版;浏览器模式在 IE11 最终版本中回归。但有一个问题:它几乎没有用,因为它不模拟条件注释。例如,如果您使用它们在旧版 IE 中启用 HTML5 支持,您将无法再
我的移动页面和短信有问题:链接。该页面主要由基于 Android 和 iOS 的智能手机通过 QR 扫描应用程序访问。 特别是在 iPhone 上,有一些带有集成浏览器的 QR 应用程序(webkit
我想使用 CustomTabsIntent。但是我没有找到androidx的customTabs路径和版本。 最后我得到了这个:androidx.browser:browser:1.0.0 我想知道正
我想将来自不同域(支付提供商)的 ssl 安全页面加载到 iframe 中。据我所知,一些(或全部?)浏览器会在页面的某些部分受到保护而其他部分不安全时警告用户。 这是真的吗? 如果是这样,如果主站点
在 Protractor 中,有 browser.pause() function : Beta (unstable) pause function for debugging webdriver t
我可以使用以下方法检索浏览器日志 browser.manage().logs().get('browser').then(function(browserLog) { logger.info('
当使用 protractor 时,全局变量 browser 似乎具有 browser.driver 的所有功能。 我特地问这个是因为我不确定是使用 browser.wait 还是 browser.dr
面对 Protractor 的计时问题。有时我的 Protractor 测试用例会因网络或性能问题而失败。我已经解决了 browser.sleep() 的现有问题。后来知道了browser.wait(
我仍然无法找到解决此问题的方法。我们有一个启动浏览器窗口的应用程序,但我们使用的底层第三方插件尚不支持 IE9。我知道我可以通过点击 F12 并选择它来切换到 IE8 的浏览器模式。 有没有办法在命令
在 Protractor 脚本中,我总是遇到超时问题,即使我设置了很大的 time out jasmine interval、allscripttimeout...在某些地方,我不得不等到元素出现,比
我正在运行一个 Angular 应用程序,并且在 Protractor 上测试时尝试获取当前 URL。使用哪一个? browser.driver.getCurrentUrl() 或 browser.g
“所有浏览器兼容”和“跨浏览器兼容”有什么区别? “交叉”是什么意思,是指不同的操作系统吗? 如果任何网站在 IE 7、8 FF 3+、Safari 3+ 的桌面版本上运行良好,我们可以说它是跨浏
不明白浏览器同步中的错误阅读文档,其中 gulp 4 真的没有写任何关于它的内容。在 gulp 4 的文档中也没有理解(异步)。如何解决这个问题。谢谢。 bla bla bla bla bla bla
我正在尝试在 ASP.Net C# 代码隐藏中执行“如果浏览器是 IE 且版本低于 9”。 但是,在 chrome 中,以下行: if (Request.Browser.Browser == "IE"
我第一次玩 watir,使用 this site作为指导。我在一个简单的程序(如下)中遇到错误 - 它在第一个非要求行失败,如图所示。 如果我没有运行下面显示的内容,而是删除了该行,它会打开一个空的
下面的 if 条件我认为它是说 - 如果浏览器是 IE 并且 IE 浏览器版本高于 9,但我没有 IE 9 来测试它,所以很难知道正确的输出,这也是不是 100% 的我想要的 bcos 默认情况下该脚
我通过 Pingdom 测试了我的网站并得到了这个: 我进行了搜索,但找不到解决方案。有谁知道我怎样才能得到这个14到100? 最佳答案 不是一个完整的解决方案,但您可以通过将两个请求合并为一个来改善
是否可以禁用浏览器/窗口之间的 HTML5 拖放功能? 我正在使用具有 native HTML5 拖放功能的 Angular2 应用程序,并希望防止用户将其拖动到浏览器窗口之外并防止将可拖动对象拖放到
我是一名优秀的程序员,十分优秀!