未验证 提交 79c3291f 编写于 作者: O openharmony_ci 提交者: Gitee

!20566 预加载预渲染

Merge pull request !20566 from wangjing247/master
......@@ -4221,6 +4221,103 @@ struct WebComponent {
}
```
### prefetchPage
prefetchPage(url: string, additionalHeaders?: Array\<WebHeader>): void
在预测到将要加载的页面之前调用,提前下载页面所需的资源,包括主资源子资源,但不会执行网页JavaScript代码或呈现网页,以加快加载速度。
**系统能力:** SystemCapability.Web.Webview.Core
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ------------------| --------------------------------| ---- | ------------- |
| url | string | 是 | 预加载的url。|
| additionalHeaders | Array\<[WebHeader](#webheader)> | 否 | url的附加HTTP请求头。|
**错误码:**
以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md).
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 17100001 | Init error. The WebviewController must be associated with a Web component. |
| 17100002 | Invalid url. |
**示例:**
```ts
// xxx.ets
import web_webview from '@ohos.web.webview'
@Entry
@Component
struct WebComponent {
controller: web_webview.WebviewController = new web_webview.WebviewController();
build() {
Column() {
Button('prefetchPopularPage')
.onClick(() => {
try {
// 预加载时,需要将'https://www.example.com'替换成一个真实的网站地址。
this.controller.prefetchPage('https://www.example.com');
} catch (error) {
console.error(`ErrorCode: ${error.code}, Message: ${error.message}`);
}
})
// 需要将'www.example1.com'替换成一个真实的网站地址。
Web({ src: 'www.example1.com', controller: this.controller })
}
}
}
```
### prepareForPageLoad
static prepareForPageLoad(url: string, preconnectable: boolean, numSockets: number): void
预连接url,在加载url之前调用此API,对url只进行dns解析,socket建链操作,并不获取主资源子资源。
**系统能力:** SystemCapability.Web.Webview.Core
**参数:**
| 名称 | 类型 | 必填 | 说明 |
| ---------------| ------- | ---- | ------------- |
| url | string | 是 | 预连接的url。|
| preconnectable | boolean | 是 | 是否进行预连接。如果preconnectable为true,则对url进行dns解析,socket建链预连接;如果preconnectable为false,则不做任何预连接操作。|
| numSockets | number | 是 | 要预连接的socket数。socket数目连接需要大于0,最多允许6个连接。|
**错误码:**
以下错误码的详细介绍请参见[webview错误码](../errorcodes/errorcode-webview.md).
| 错误码ID | 错误信息 |
| -------- | ------------------------------------------------------------ |
| 17100002 | Invalid url. |
| 171000013| The number of preconnect sockets is invalid. |
**示例:**
```ts
// xxx.ts
import UIAbility from '@ohos.app.ability.UIAbility';
import web_webview from '@ohos.web.webview';
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
console.log("EntryAbility onCreate")
web_webview.WebviewController.initializeWebEngine()
// 预连接时,需要將'https://www.example.com'替换成一个真实的网站地址。
web_webview.WebviewController.prepareForPageLoad("https://www.example.com", true, 2);
globalThis.abilityWant = want
console.log("EntryAbility onCreate done")
}
}
```
## WebCookieManager
通过WebCookie可以控制Web组件中的cookie的各种行为,其中每个应用中的所有web组件共享一个WebCookieManager实例。
......
......@@ -230,23 +230,23 @@ Invalid web storage origin.
2. 如果已经使用,检查调用失败原因,如databaseAccess开发是否打开。
## 17100013 申请内存失败
## 17100013 预连接时,输入socket数目无效
**错误信息**
New failed, out of memeory.
The number of preconnect sockets is invalid.
**错误描述**
申请失败,内存不足
预连接时,输入socket的数目是无效的
**可能原因**
需要发送的数据过大,导致申请内存失败
预连接时,输入socket的数目小于等于0,或者大于6
**处理步骤**
检查需要发送的数据的长度
检查输入的socket的数目范围是否大于0且小于等于6
## 17100014 类型和值不匹配
......@@ -267,3 +267,22 @@ The type does not match with the value of the message.
需要根据消息的类型调用相应的接口来获取消息的值。举例:如获取到的类型是BOOLEAN,则需要调用GetBoolean接口来获取布尔值。
## 17100015 申请内存失败
**错误信息**
New failed, out of memeory.
**错误描述**
申请失败,内存不足。
**可能原因**
需要发送的数据过大,导致申请内存失败。
**处理步骤**
检查需要发送的数据的长度。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册