webview

WebView性能、体验分析与优化

落爺英雄遲暮 提交于 2020-01-04 03:27:14
在App开发中,内嵌WebView始终占有着一席之地。它能以较低的成本实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的封锁。 然而便利性的同时,WebView的性能体验却备受质疑,导致很多客户端中需要动态更新等页面时不得不采用其他方案。 以发展的眼光来看,功能的动态加载以及三端的融合将会是大趋势。那么如何克服WebView固有的问题呢?我们将从性能、内存消耗、体验、安全几个维度,来系统的分析客户端默认WebView的问题,以及对应的优化方案。 性能 对于WebView的性能,给人最直观的莫过于:打开速度比native慢。 是的,当我们打开一个WebView页面,页面往往会慢吞吞的loading很久,若干秒后才出现你所需要看到的页面。 这是为什么呢? 对于一个普通用户来讲,打开一个WebView通常会经历以下几个阶段: 交互无反馈 到达新的页面,页面白屏 页面基本框架出现,但是没有数据;页面处于loading状态 出现所需的数据 如果从程序上观察,WebView启动过程大概分为以下几个阶段: 如何缩短这些过程的时间,就成了优化WebView性能的关键。 接下来我们逐一分析各个阶段的耗时情况,以及需要注意的优化点。 WebView初始化 当App首次打开时,默认是并不初始化浏览器内核的;只有当创建WebView实例的时候,才会创建WebView的基础框架。

WebView性能、体验分析与优化

一个人想着一个人 提交于 2020-01-04 03:26:56
育新 徐宏 嘉洁 · 2017-06-09 20:03 在App开发中,内嵌WebView始终占有着一席之地。它能以 较低的成本 实现Android、iOS和Web的复用,也可以冠冕堂皇的突破苹果对 热更新 的封锁。 然而便利性的同时,WebView的性能体验却 备受质疑 ,导致很多客户端中需要动态更新等页面时不得不采用其他方案。 以发展的眼光来看,功能的动态加载以及 三端的融合将会是大趋势 。 那么如何克服WebView固有的问题呢? 我们将从性能、内存消耗、体验、安全几个维度,来系统的分析客户端默认WebView的问题,以及对应的优化方案。 性能 对于WebView的性能,给人最直观的莫过于: 打开速度比native慢 。 是的,当我们打开一个WebView页面,页面往往会慢吞吞的loading很久,若干秒后才出现你所需要看到的页面。 这是为什么呢? 对于一个普通用户来讲,打开一个WebView通常会经历以下几个阶段: 交互 无反馈 到达新的页面, 页面白屏 页面基本框架出现,但是没有数据; 页面处于loading状态 出现所需的数据 如果从程序上观察,WebView启动过程大概分为以下几个阶段: 如何 缩短这些过程的时间 ,就成了优化WebView性能的关键。 接下来我们逐一分析各个阶段的耗时情况,以及需要注意的优化点。 WebView初始化 当App首次打开时

How do you open a link in Safari from the Gmail app?

依然范特西╮ 提交于 2020-01-04 02:32:05
问题 I am sending out an email using the MFMailComposeViewController. MFMailComposeViewController* controller = [[MFMailComposeViewController alloc] init]; controller.mailComposeDelegate = self; [controller setSubject:@"subject"]; [controller setMessageBody:@"<a href=\"http://website.com\" target=\"_blank\">Link</a>." isHTML:YES ]; [self presentViewController:controller animated:YES completion:nil]; When the recipient opens this email in the default Mail app and taps the hyperlink, the page opens

InAppBrowser Allow-Navigation ONLY MY DOMAIN when it is already open

北慕城南 提交于 2020-01-04 01:56:21
问题 I know there are a thousand threads talking about this topic, but it is that, really reading them and executing what they say, I can not find the key. And .. I have read and already tried many. My problem is the following. I'm using InAppBrowser module (InAppBrowser from @ ionic-native / in-app-browser / ngx) I am creating the following code. constructor (private iab: InAppBrowser, private platform: Platform) { this.iab.create ('http://www.myweb.com/app', '_blank', 'EnableViewPortScale = yes,

Take a screenshot of a video in a webview android

天涯浪子 提交于 2020-01-04 00:19:23
问题 I am working on a project where I save a screenshot in a WebView. API Level is 21. On a normal homepage it works absolutely fine, but when I visit youtube and watch a video, the video player returns as a black rectangle. What I want to do is take a screenshot whenever the user touches the screen. When I take a screenshot with Power & Volume Button it works perfectly. Is there an Intent which takes this kind of a screenshot? Ideally the screenshot would only contain the webview, but if it's

Take a screenshot of a video in a webview android

萝らか妹 提交于 2020-01-04 00:19:21
问题 I am working on a project where I save a screenshot in a WebView. API Level is 21. On a normal homepage it works absolutely fine, but when I visit youtube and watch a video, the video player returns as a black rectangle. What I want to do is take a screenshot whenever the user touches the screen. When I take a screenshot with Power & Volume Button it works perfectly. Is there an Intent which takes this kind of a screenshot? Ideally the screenshot would only contain the webview, but if it's

Flutter对比

两盒软妹~` 提交于 2020-01-04 00:16:38
Flutter 问题:移动系统与终端设备的碎片化, 在不同平台上开发和维护同一个产品, 存在开发和适配的问题。 小步快跑, 交付节奏 框架原理和底层设计思想,渲染机制与事件处理方式,组件化解耦思路,工程化整体方法,与原生 Android/iOS 开发并没有本质区别. RN 熟悉Android 和 IOS开发知识 Flutter 02 Dart 解决JS在语言本质上无法改进的缺陷 借鉴 C 语言的基本语法 借鉴 Java 语言的数据类型和内存管理机制; 借鉴 Scheme 语言,将函数提升到“第一等公民”(first class)的地位; 借鉴 Self 语言,使用基于原型(prototype)的继承机制。 具有函数式与面向对象的特征 手机与桌面应用为JS的宿主容器,比如React,RN,Vue,Electron,NW Nodejs全栈 dart 15年前,chrome内置Dart VM, 运行 Dart 代码; 专注大前端与跨平台生态的语言, 集百家之长 JIT和AOT 即时编译(JIT - Just in time) 在开发周期中,动态下发和执行代码,开发效率高,但运行速度和执行性能受JIT的影响; 缩短产品的开发周期,例如,热重载 预编译(AOT - Ahead of time) 生成二进制,运行速度快,执行性能好;但每次执行前需要提前编译,开发测试效率低; 内存分配与垃圾回收

Changing the Android Webview hash without reloading page

谁都会走 提交于 2020-01-03 22:54:09
问题 I'm got a custom webview setup which is working pretty well, but I'd like to be able to either: 1, change the url hash without the webview reloading the page (it would lose the state of my js app) 2, call some js that sits within my web page from within android. I can't change any JS within the site, unfortunately, so can't custom write any js to put on the site especially for the job, the only stuff I have control over is the Android app. Can anyone think of a way of doing either of these?

How to make webviews as large as its content?

依然范特西╮ 提交于 2020-01-03 19:36:10
问题 I couldn't find this on the web. I have many webviews in a HorizontalScrollView , I want all of them fit its content (then potentially have a different width ). More, I inflate those webviews like this: LinearLayout layout = (LinearLayout)getLayoutInflater().inflate(R.layout.webview_holder, null); webView = (WebView) layout.findViewById(R.id.webView); webView.loadData(data, "text/html; charset=UTF-8", "UTF-8"); webView.getSettings().setUseWideViewPort(true); webView.setScrollbarFadingEnabled

Android - Javascript: how to execute jquery in webview

六眼飞鱼酱① 提交于 2020-01-03 18:35:11
问题 I'm building an app which load a webpage in a webview. In that webpage, i need to programmatically click on some links using Jquery. Now, i know how to execute a Javascript code on the webview programmatically (see below): WebSettings myBrowserSettings = myBrowser.getSettings(); myBrowserSettings.setJavaScriptEnabled(true); Log.d("Stefano", "JS enabled"); myBrowser.loadUrl("javascript:document.getElementsByid('myWord').click();"); But now, I need to know how implement a Jquery function in my