HarmonyOS Web组件允许再弹出窗,弹出窗中设置的自定义UserAgent在渲染时无作用,只有在弹窗中再次点击url后有作用
Web组件允许再弹出窗,弹出窗中设置的自定义UserAgent在渲染时无作用,只有在弹窗中再次点击url后有作用。
Web({ src: $rawfile('local/index.html'), controller: this.webController })
.multiWindowAccess(true)
.allowWindowOpenMethod(true)
.onWindowNew((event) => {
console.log('pop url: ' + event.targetUrl);
if (this.dialogController) {
this.dialogController.close();
}
let popController: webview.WebviewController = new webview.WebviewController();
this.dialogController = new CustomDialogController({
builder: NewWebViewComp({ webviewController: popController })
})
this.dialogController.open();
//将新窗口对应WebviewController返回给Web内核。
//如果不需要打开新窗口请调用event.handler.setWebController接口设置成null。
//若不调用event.handler.setWebController接口,会造成render进程阻塞。
event.handler.setWebController(popController);
})
@CustomDialog
export struct NewWebViewComp {
controller?: CustomDialogController;
webviewController: webview.WebviewController = new webview.WebviewController();
ua: string =
"xxx";
build() {
Column() {
Web({ src: "", controller: this.webviewController })
.javaScriptAccess(true)
.multiWindowAccess(true)
.domStorageAccess(true)
.onWindowExit(() => {
console.info("NewWebViewComp onWindowExit");
if (this.controller) {
this.controller.close();
}
})
.onControllerAttached(() => {
console.log("onControllerAttached");
try {
// 这里设置的UserAgent,在第一次渲染时没有作用
this.webviewController.setCustomUserAgent(this.ua);
console.log("subWeb ua:" + this.ua);
} catch (error) {
console.error(`ErrorCode: ${(error as BusinessError).code}, Message: ${(error as BusinessError).message}`);
}
})
}
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 地图自定义弹窗消息窗
278浏览 • 1回复 待解决
如何在自定义弹窗中再次弹窗
2572浏览 • 1回复 待解决
HarmonyOS 全局自定义弹窗无法弹出
272浏览 • 1回复 待解决
HarmonyOS 如何自定义UICalendarPicker点击弹出
136浏览 • 1回复 待解决
当为一个按钮设置了bindPop弹窗,点击按钮弹窗显示,点击空白处弹窗消失了,再次点击按钮,弹窗不会再弹出
955浏览 • 1回复 待解决
HarmonyOS CustomDialogController 自定义弹窗无法在 class 和 静态方法中正常弹出
442浏览 • 1回复 待解决
HarmonyOS 自定义弹窗能否在 非 Component 或 Entry 修饰的文件中弹出
171浏览 • 1回复 待解决
HarmonyOS 自定义弹窗在页面中显示时,如何防止用户侧滑关闭自定义弹窗
244浏览 • 1回复 待解决
HarmonyOS 自定义组件的自定义布局 数据的作用域不对
296浏览 • 1回复 待解决
HarmonyOS @watch在同层渲染中监听变量不起作用
237浏览 • 1回复 待解决
HarmonyOS 外部函数中如何弹出自定义 Dialog?
253浏览 • 1回复 待解决
自定义弹窗中有弹出键盘的需要,但是弹出之后如何消除键盘和弹窗之间的距离
1240浏览 • 1回复 待解决
HarmonyOS 请问自定义弹窗如何在非UI组件的逻辑中弹出
174浏览 • 1回复 待解决
HarmonyOS自定义Text时,点击Text如何实现弹出软键盘的功能?
4641浏览 • 3回复 待解决
HarmonyOS 自定义工具类中怎么弹出CustomDialogController自定义弹框?
685浏览 • 1回复 待解决
权限申请的弹窗点击禁止之后,再次申请权限时无法弹出
1212浏览 • 1回复 待解决
HarmonyOS开发中地图信息窗可以自定义布局吗?
294浏览 • 0回复 待解决
HarmonyOS dialog在非组件类中无法弹出
260浏览 • 1回复 待解决
HarmonyOS 地图组件自定义信息窗 无法实现效果
281浏览 • 2回复 待解决
如何自定义弹窗的弹出动画和关闭动画
2220浏览 • 2回复 待解决
HarmonyOS 在ArkTS类中想调用自定义弹窗
86浏览 • 1回复 待解决
如何将自定义弹窗弹出位置设置在屏幕底部,且距离底部为20vp?
572浏览 • 1回复 待解决
HarmonyOS 自定义组件中的constructor()方法在使用组件时没有调用
644浏览 • 1回复 待解决
自定义弹窗能否在ts文件中定义和使用
2281浏览 • 1回复 待解决
HarmonyOS 自定义输入键盘,发现点击某个Text组件,无法获取TextInput的焦点,弹出自定义键盘
541浏览 • 1回复 待解决
问题原因为setCustomUserAgent调用的时机不正确导致,可以尝试在创建WebviewController的时候或者更早的时候就设置UserAgent,参考示例如下: