HarmonyOS web-view访问url失败?

web-view hbuildx中访url成功,HarmonyOS真机尝试只有偶尔成功,还会出现闪退。

报错内容:

Error message:Init error. The WebviewController must be associated with a Web component
Error code:17100001
SourceCode:
  this.controller.loadUrl(this.src);
^
Stacktrace:
  at setSrc (entry/src/main/ets/uni-app/components/WebView.ets:156:5)
at viewPropertyHasChanged (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:6527:1)
at notifyPropertyHasChangedPU (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:4807:1)
at syncPeerHasChanged (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:5425:1)
at anonymous (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:4823:1)
at notifyPropertyHasChangedPU (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:4820:1)
at notifyObjectValueAssignment (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:4526:1)
at set (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:5271:1)
at reset (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:5514:1)
at updateStateVars (entry/src/main/ets/uni-app/components/WebView.ets:18:2)
at updateStateVarsOfChildByElmtId (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:4185:1)
at anonymous (entry/src/main/ets/uni-app/WebViewBuilder.ets:15:68)
at updateFunc (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:6740:1)
at UpdateElement (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:6463:1)
at anonymous (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:6686:1)
at updateDirtyElements (/usr1/hmos_for_system/src/increment/sourcecode/foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/stateMgmt.js:6681:1)
at updateStateVarsOfChildByElmtId (../../../foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/jsXNode.js:156:1)
at anonymous (entry/src/main/ets/uni-app/WebViewBuilder.ets:42:38)
at updateFunc (../../../foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/jsXNode.js:258:1)
at UpdateElement (../../../foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/jsXNode.js:214:1)
at anonymous (../../../foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/jsXNode.js:195:1)
at update (../../../foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/jsXNode.js:193:1)
at update (../../../foundation/arkui/ace_engine/frameworks/bridge/declarative_frontend/engine/jsXNode.js:65:1)
at update (entry/src/main/resources/rawfile/uni-app/uni-app-harmony-framework-dev.js:22146:1)
at invokeSync (entry/src/main/resources/rawfile/uni-app/uni-app-harmony-framework-dev.js:480:1)
at (entry/src/main/ets/pages/Page.ets:216:0)
at (entry/src/main/ets/pages/Page.ets:259:0)
阅读 595
1 个回答

出现The WebviewController must be associated with a Web component这种错误的原因是在WebviewController与web绑定之前就使用了controller实例导致的错误,确认this.controller.loadUrl一定要在WebviewController与web绑定之后再使用。可以在onControllerAttached回调函数内执行this.controller.loadUrl。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进