Articles of google chrome

Android上的Chrome 61+导航被阻止错误

我正在构建一个登录页面,在提交和validation用户凭据后,它会打开一个本机移动应用程序。 直到上周,我通过使用自定义方案URI实现了这个跨移动操作系统,如下所示: function onLoginCallback() { const redirectUri = ‘customscheme:/action?param1=val1&param2=val2’; window.location.replace(redirectUri); } 登录页面显示在IABT中,是In App Browser选项卡的缩写。 但是,自从Chrome版本61发布以来,这种方法在Android上被打破了。 Chrome会阻止重定向,因为没有与重定向相关的明显用户操作(有关此问题的详细信息,请参阅此处 )。 因此,在执行上面的代码时,我最终会在控制台中发出警告: 导航被阻止:customscheme:/ action?param1 = val1&param2 = val2 我也尝试将自定义方案url更新为意图url,但无济于事。 谷歌搜索这个问题并不容易提供一个明确的解决方案,所以我希望有人可以帮助我。 编辑:尝试使用以下方案重现问题(尽可能接近现实生活场景): IABT显示一个带有单个按钮的页面 单击该按钮会将jsonp调用触发到模拟端点 执行JSONP回调并触发自定义事件 触发自定义事件的事件处理程序,并将浏览器重定向到另一个模拟端点 该模拟端点以自定义深度链接方案的302响应。 唉,这似乎有效。 我原本预计包含jsonp调用会导致Chrome阻止最终的重定向,因为它无法将其识别为用户启动的操作。 编辑2:管理以获得可重现的方案。 我们已经设置了一个虚拟端点,根据请求只需在Location头中返回带有自定义方案的302 。 除第一个尝试外,所有尝试都会阻止此操作。 这个事实仍令人难以置信。 我们正在使用AppAuth for Android应用程序来测试设置。 我正在打开一个自定义选项卡到端点,如下所示。 代码来自这个答案 。 void launchTab(Context context, Uri uri){ final CustomTabsServiceConnection connection = new […]

Crosswalk WebView中启用了Chrome的数据保护function?

在Chrome版本45.0.2454.85中,每当我连接到手机上的Cordova / Crosswalk应用程序时,开发人员工具会在窗口顶部显示黄色警告,文字显示:“在调试时考虑禁用Chrome数据保护程序 ”。 是否在Crosswalk插件(版本1.2,WebView版本44.0.2403.117)中启用了数据保护程序? 如果是这样,我可以将其关闭吗?

ARC Welder切断了操作栏

我刚刚完成了我的第一个Android应用程序New Daily Quotes的工作 。 我很高兴听到我可以通过ARC Welder和Chrome网上应用店轻松地将其“移植”到Chromebook和Google Chrome,但我遇到了麻烦。 当我在ARC Welder中运行应用程序时,操作栏的顶部被切断,使标题文本无法读取,菜单按钮最多也很难。 截止程度取决于所选的形状因子,手机最差,平板电脑/最大化产生相同的结果。 以下是我的意思截图。 如果有任何帮助,源代码可在此处获得。 手机用户界面 ARC焊工电话UI – 风景 ARC焊接手机UI – 肖像

Chrome自定义标签中检测到内存泄漏

我正在尝试实施Chrome自定义标签并通过LeakCanary检测内存泄漏。 除非我们添加另一个Activity层,否则演示应用程序似乎没有泄漏(即MainActivity启动Activity2 ,它绑定/取消绑定到自定义选项卡服务并启动url – MainActivity在演示应用程序中执行的所有操作 )。 MainActivity看起来像这样: public class MainActivity extends Activity implements OnClickListener { private Button mLaunchButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LeakCanary.install(getApplication()); setContentView(R.layout.main); mLaunchButton = (Button) findViewById(R.id.launch_button); mLaunchButton.setOnClickListener(this); } @Override public void onClick(View v) { int viewId = v.getId(); if (viewId == R.id.launch_button) { Intent intent = new Intent(getApplicationContext(), Activity2.class); startActivity(intent); […]

如何在Android上启用缩放function?

没错,我想启用缩放而不是禁用它。 我创建了一个响应式网站,一切都很好看。 但由于某些原因,您无法在Nexus 7(运行Android 4.2.2)上对Chrome进行缩放。 这是我的元标记,确保它显示具有适合屏幕大小的CSS的网站: 我在这里无处可说用户无法缩放。 正如我所说,该网站是响应式的,所以用户没有理由需要缩放,但是如果用户想要缩放,我不想阻止它们。 iPhone上没有问题,用户可以根据需要进行缩放。 但在Android上他们不能。 我尝试添加user-scalable=yes和user-scalable=1但这没有区别。 唯一有效的方法是删除该元标记,但随后该网站呈现自身就像它在大屏幕上显示一样,因此它不再响应。 有什么我可以做的吗?

确定WebView是否仅使用JS是不可见的

我有一个带有webView的Android测试应用程序,如下所示: 我的Main活动加载了一个我运行JS内容的页面。 使用JS启用JS: webSettings.setJavaScriptEnabled(true); 我的应用程序上有一个按钮,可以将alpha值从0切换为1(显示/隐藏webView)。 是否有任何“创造性”的方法来检测JS方面的变化? 我试过的事情: 检查requestAnimationFrame帧速率的变化。 可见性API 更新: 澄清,我正在寻找一个JS Only解决方案,实际的JS代码是在WebView环境中使用的SDK。 我无法控制Android应用程序,完全控制WebView内容。

无法构造通知:非法构造函数

我的网站使用的桌面通知从未在移动设备上运行,但我最近在Android 4.4上的Chrome版本42.0.2311.108中开始收到以下例外: Failed to construct ‘Notification’: Illegal constructor. Use ServiceWorkerRegistration.showNotification() instead. TypeError: Failed to construct ‘Notification’: Illegal constructor. Use ServiceWorkerRegistration.showNotification() instead. 我的通知代码很简单,在检查用户是否已授予权限后,我按如下方式初始化新的Notification对象: var notification = new Notification(messageOptions.title, { icon: messageOptions.icon }); 如何更改此代码以使用undefined的ServiceWorkerRegistration.showNotification,以支持移动版Chrome中的通知,或者如果不可能,则执行function检测并防止例外发生,如果这真的不是t [支持]。

是什么原因导致Android Chrome上的网络请求被取消

在Android设备上的某些Chrome浏览器中,我们看到Chrome Dev Tools中已取消的请求。 它似乎只发生在遵循/content/:uuid路径格式的文章的URL上,并且在www子域上,我们认为我们已经缩小到它而不是所有文章,因为带有虚荣URL的内容似乎没有取消。 发生的情况是这些请求显示为已取消,然后立即再次请求但未取消。 大多数情况下,这很好,浏览器会加载请求的页面,但是偶尔从www.ft.com点击链接到文章将首先取消原始请求,然后重新制作该内容的请求,而不是他们已经在页面上的请求,在这种情况下www.ft.com 。 在发生此错误的设备上,初始取消的请求将一直发生,但原始页面的重新加载是间歇性的(可能是6次中的1次?)。 取消的请求,最终通过: 取消的请求,重新加载原始页面: 这些设备上出现错误: Chrome版本:59.0.3071.125,Android版本:7.1.2,型号:Pixel Chrome版本:59.0.3071.125,Android版本:7.1.2,型号:Nexus 6P Chrome版本:59.0.3071.125,Android版本:5.0.0,型号:Note 3 这些设备上不会出现错误: Chrome版本:59.0.3071.125,Android版本:7.0,型号:Moto G5 Chrome版本:59.0.3071.125,Android版本:7.0,型号:Galaxy S7(mini) Chrome版本:59.0.3071.125,Android版本:7.1.1,型号:OnePlus 3 这与Chrome开发者工具中资源平均值的状态=取消有什么关系? ,但我们很确定我们已经在接受的答案中排除了原因。 调试我们尝试但没有帮助: 禁用Javascript 禁用我们的跟踪Javascript 禁用我们的广告 禁用我们的服务工作者 禁用应用程序缓存 禁用Javascript确实改变了行为,我们看到请求仍然被取消,但没有看到它重新加载原始页面,因为我们看到启用了Javascript。 其他观察: 单击Chrome Devtools模拟设备中的链接不会导致请求取消,只能直接使用设备。

谷歌Chrome安卓应用的源代码?

我想构建一个与Google Chrome的Android版本有相似之处的用户界面。 我如何自己构建谷歌浏览器的Android版本?

调试时禁用chrome数据保护程序

我正在尝试使用我的电脑上的chrome dev工具检查Chrome上的Chrome网站。 首先,我检查Android上的Chrome是否已禁用数据保护程序 然后,我将手机与我的电脑连接,运行chrome dev工具,我收到警告 考虑在调试时禁用Chrome Data Saver。 如果禁用Chrome for Android上的数据保护程序,为什么会收到此消息? 问题是调试是不可能的,因为我得到一个空白屏幕 我怎样才能解决这个问题?