refactor(http): 重构网页加载header参数设置
- 在 ApiUtils 中添加 getWebHeader 静态方法,统一处理网页加载所需的 header 参数 - 在 SettingsView 中使用 ApiUtils.getWebHeader()替代原有的 header 参数设置 - 移除 AuthorizeSignOrderDetailView 中冗余的 header 参数设置代码 - 更新 XWebview 和 XWebHelper,支持传入 headers 参数
这个提交包含在:
父节点
5e3ca28817
当前提交
f71943957e
@ -1,6 +1,6 @@
|
|||||||
import web_webview from '@ohos.web.webview';
|
import web_webview from '@ohos.web.webview';
|
||||||
import 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 { XDialogController } from '../dialog/XDialogController';
|
||||||
import { XDialogList } from '../dialog/XDialogList';
|
import { XDialogList } from '../dialog/XDialogList';
|
||||||
import { picker } from '@kit.CoreFileKit';
|
import { picker } from '@kit.CoreFileKit';
|
||||||
@ -16,6 +16,7 @@ import { XWebManager } from '../utils/XWebManager';
|
|||||||
@Component
|
@Component
|
||||||
export struct XWebview {
|
export struct XWebview {
|
||||||
// 手机号
|
// 手机号
|
||||||
|
@State headers?: Array<WebHeader> = (router.getParams() as XWebParams).headers
|
||||||
@State url?: string = (router.getParams() as XWebParams).url
|
@State url?: string = (router.getParams() as XWebParams).url
|
||||||
@State zoomAccess?: boolean = (router.getParams() as XWebParams).zoomAccess
|
@State zoomAccess?: boolean = (router.getParams() as XWebParams).zoomAccess
|
||||||
@State content?: string = (router.getParams() as XWebParams).content
|
@State content?: string = (router.getParams() as XWebParams).content
|
||||||
@ -35,23 +36,6 @@ export struct XWebview {
|
|||||||
SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined)
|
SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined)
|
||||||
webview.WebviewController.setWebDebuggingAccess(true);
|
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) {
|
if (this._uuidToHtml) {
|
||||||
XWebManager.addOnMessageToHtml(this._uuidToHtml, (msg) => {
|
XWebManager.addOnMessageToHtml(this._uuidToHtml, (msg) => {
|
||||||
if (this.ports && this.ports[1]) {
|
if (this.ports && this.ports[1]) {
|
||||||
@ -208,10 +192,42 @@ export struct XWebview {
|
|||||||
this.controller.postMessage('__init_port__', [this.ports[0]], '*');
|
this.controller.postMessage('__init_port__', [this.ports[0]], '*');
|
||||||
})
|
})
|
||||||
.onControllerAttached(() => {
|
.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 {
|
try {
|
||||||
let userAgent = this.controller.getUserAgent() + '/szyx_sdk';
|
let userAgent = this.controller.getUserAgent() + '/szyx_sdk';
|
||||||
this.controller.setCustomUserAgent(userAgent);
|
this.controller.setCustomUserAgent(userAgent);
|
||||||
// this.controller.runJavaScript('window.SZYX_YWX_WebViewBridge.onIsYwxApp()');
|
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message}`);
|
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 { BusinessError } from '@kit.BasicServicesKit';
|
||||||
import { LogHelper } from '../../../../Index';
|
import { LogHelper } from '../../../../Index';
|
||||||
import { baseEncode } from '../util/base64Util';
|
import { baseEncode } from '../util/base64Util';
|
||||||
@ -24,6 +24,7 @@ export interface XWebParams {
|
|||||||
_uuidToHtml?: string
|
_uuidToHtml?: string
|
||||||
onMessage?: (message: string) => void
|
onMessage?: (message: string) => void
|
||||||
controller?: XWebController
|
controller?: XWebController
|
||||||
|
headers?: Array<WebHeader>
|
||||||
}
|
}
|
||||||
|
|
||||||
export class XWebHelper {
|
export class XWebHelper {
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户