【问题描述】
使用鸿蒙3.0 JavaUI的WebView,部分网址使用官网上的load方法(WebView-常用组件开发指导-Java UI框架-UI-基于Java开发-开发-HarmonyOS应用开发)无任何反应,且log中告警:“hwbr_engine_AwContentsClient: Denied starting an intent without a user gesture”
【解决方案】
需要添加自定义的WebAgent,参考官网“定制网页加载行为”(WebView-常用组件开发指导-Java UI框架-UI-基于Java开发-开发-HarmonyOS应用开发)中的代码进行修改,代码如下:
public class MainAbilitySlice extends AbilitySlice {final String url = "http://xxx.yyy.cn" ;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);WebView webView = (WebView) findComponentById(ResourceTable.Id_webview);webView.getWebConfig().setJavascriptPermit(true);webView.setWebAgent(new MyWebAgent());webView.load(url);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}
}class MyWebAgent extends WebAgent {@Overridepublic boolean isNeedLoadUrl(WebView webview, ResourceRequest request) {return super.isNeedLoadUrl(webview, request);}
}
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh