HarmonyOS鸿蒙Next中使用webview嵌套网页,真机运行白屏

HarmonyOS鸿蒙Next中使用webview嵌套网页,真机运行白屏 使用webview嵌套网页,真机运行白屏
代码片段:

import { webview } from '@kit.ArkWeb';

@Entry
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      // 组件创建时,加载网址
      // Web({ src:'https://www.baidu,com', controller: this.controller })
      Web({ src:'', controller: this.controller })
        .onControllerAttached(()=>{
          this.controller.setCustomUserAgent('Mozilla/5.0 (Linux; Android 9; VRD-AL10; HMSCore 6.3.0.331) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4.88 HuaweiBrowser/12.0.4.1 Mobile Safari/537.36')
          this.controller.loadUrl('https://www.baidu,com')
        })
    }
  }
}

更多关于HarmonyOS鸿蒙Next中使用webview嵌套网页,真机运行白屏的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

先检查下是否开通了网络权限(在module.json5中添加ohos.permission.INTERNET) 参考以下demo:

import { webview } from '@kit.ArkWeb';
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();

  build() {
    Column() {
      Web({ src: 'https://www.baidu,com', controller: this.controller})
        .onControllerAttached(() => {
          this.controller.setCustomUserAgent('Mozilla/5.0 (Linux; Android 9; VRD-AL10; HMSCore 6.3.0.331) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4.88 HuaweiBrowser/12.0.4.1 Mobile Safari/537.36')
        })
        .domStorageAccess(true)
        .javaScriptAccess(true)
        .fileAccess(true)
        .mixedMode(MixedMode.All)
    }
  }
}

更多关于HarmonyOS鸿蒙Next中使用webview嵌套网页,真机运行白屏的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中使用WebView嵌套网页时出现真机运行白屏的问题,可能涉及以下原因:

  1. 网络权限未配置:确保在config.json中已正确配置网络权限:

    "reqPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
    
  2. WebView配置问题:检查WebView的配置是否正确,确保已启用JavaScript支持:

    webView.getSettings().setJavaScriptEnabled(true);
    
  3. 网页加载失败:确认网页URL正确且可访问,检查网络连接是否正常。

  4. WebView生命周期管理:确保WebView的生命周期方法(如onPageFinished)正确实现,避免在页面加载完成前进行其他操作。

  5. 硬件加速问题:尝试禁用硬件加速,查看是否解决问题:

    webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
    
  6. WebView版本兼容性:检查WebView组件是否与鸿蒙Next版本兼容,必要时更新WebView或鸿蒙SDK。

  7. 系统资源限制:真机可能存在资源限制,确保应用未占用过多内存或CPU资源。

  8. 日志排查:通过日志工具(如HiLog)查看WebView加载过程中的错误信息,定位具体问题。

如果以上步骤未能解决问题,建议进一步排查WebView的加载流程和系统日志,以确定具体原因。

在HarmonyOS鸿蒙Next中使用WebView嵌套网页时,真机运行出现白屏问题,可能由以下原因导致:

  1. 网络权限未开启:确保在config.json中已添加网络权限:

    "reqPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      }
    ]
    
  2. 网页加载失败:检查网页URL是否正确,确保网络连接正常。

  3. WebView配置问题:确保正确初始化WebView并加载URL:

    WebView webView = new WebView(context);
    webView.load("https://example.com");
    
  4. 硬件加速问题:尝试在config.json中禁用硬件加速:

    "deviceConfig": {
      "default": {
        "hwcEnabled": false
      }
    }
    
  5. WebView兼容性问题:确保使用的WebView组件与HarmonyOS版本兼容。

检查上述配置后,重新运行应用,问题应能解决。

回到顶部