refactor(http): 重构网页加载header参数设置

- 在 ApiUtils 中添加 getWebHeader 静态方法,统一处理网页加载所需的 header 参数
- 在 SettingsView 中使用 ApiUtils.getWebHeader()替代原有的 header 参数设置
- 移除 AuthorizeSignOrderDetailView 中冗余的 header 参数设置代码
- 更新 XWebview 和 XWebHelper,支持传入 headers 参数
这个提交包含在:
徐勤民 2024-11-28 12:17:44 +08:00
父节点 5e3ca28817
当前提交 f71943957e
共有 2 个文件被更改,包括 37 次插入20 次删除

查看文件

@ -1,6 +1,6 @@
import web_webview from '@ohos.web.webview';
import webview from '@ohos.web.webview';
import { router } from '@kit.ArkUI';
import { router, WebHeader } from '@kit.ArkUI';
import { XDialogController } from '../dialog/XDialogController';
import { XDialogList } from '../dialog/XDialogList';
import { picker } from '@kit.CoreFileKit';
@ -16,6 +16,7 @@ import { XWebManager } from '../utils/XWebManager';
@Component
export struct XWebview {
// 手机号
@State headers?: Array<WebHeader> = (router.getParams() as XWebParams).headers
@State url?: string = (router.getParams() as XWebParams).url
@State zoomAccess?: boolean = (router.getParams() as XWebParams).zoomAccess
@State content?: string = (router.getParams() as XWebParams).content
@ -35,23 +36,6 @@ export struct XWebview {
SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined)
webview.WebviewController.setWebDebuggingAccess(true);
if (this.content) {
try {
this.controller.loadData(this.content,
"text/html",
"UTF-8", '', '')
} catch (e) {
ToolsHelper.showAlertDialog({
title: '警告',
msg: e.message ?? '加载内容失败',
action: {
onClick: () => {
router.back()
}
}
})
}
}
if (this._uuidToHtml) {
XWebManager.addOnMessageToHtml(this._uuidToHtml, (msg) => {
if (this.ports && this.ports[1]) {
@ -208,10 +192,42 @@ export struct XWebview {
this.controller.postMessage('__init_port__', [this.ports[0]], '*');
})
.onControllerAttached(() => {
if (this.content) {
try {
this.controller.loadData(this.content,
"text/html",
"UTF-8", '', '')
} catch (e) {
ToolsHelper.showAlertDialog({
title: '警告',
msg: e.message ?? '加载内容失败',
action: {
onClick: () => {
router.back()
}
}
})
}
} else if (this.url) {
if (this.headers) {
this.controller.loadUrl(this.url, this.headers);
} else {
this.controller.loadUrl(this.url);
}
} else {
ToolsHelper.showAlertDialog({
title: '警告',
msg: '请传入url或content',
action: {
onClick: () => {
router.back()
}
}
})
}
try {
let userAgent = this.controller.getUserAgent() + '/szyx_sdk';
this.controller.setCustomUserAgent(userAgent);
// this.controller.runJavaScript('window.SZYX_YWX_WebViewBridge.onIsYwxApp()');
} catch (error) {
console.error(`ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message}`);

查看文件

@ -1,4 +1,4 @@
import { router } from '@kit.ArkUI';
import { router, WebHeader } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
import { LogHelper } from '../../../../Index';
import { baseEncode } from '../util/base64Util';
@ -24,6 +24,7 @@ export interface XWebParams {
_uuidToHtml?: string
onMessage?: (message: string) => void
controller?: XWebController
headers?: Array<WebHeader>
}
export class XWebHelper {