HarmonyOS 是否支持App应用内部预览文件?

如题:HarmonyOS 是否支持App应用内部预览文件?

阅读 555
1 个回答

示例参考如下:

import { LengthMetrics } from '@kit.ArkUI'
import { hilog } from '@kit.PerformanceAnalysisKit';
import { webview } from '@kit.ArkWeb';
import axios from '@ohos/axios';

const TAG = `struct1`
const DOMAIN = 0x0001

@Component
export struct ViewPDF {
  @State controller: webview.WebviewController = new webview.WebviewController()

  aboutToAppear(): void {
    hilog.info(DOMAIN, TAG, 'aboutToAppear');
  }

  aboutToDisappear(): void {
    hilog.info(DOMAIN, TAG, 'aboutToDisappear');
  }

  onBackPress(): boolean | void {
    hilog.info(DOMAIN, TAG, 'onBackPress');
  }

  onPageShow(): void {
    hilog.info(DOMAIN, TAG, 'onPageShow');
  }

  onPageHide(): void {
    hilog.info(DOMAIN, TAG, 'onPageHide');
  }

  onDidBuild(): void {
    hilog.info(DOMAIN, TAG, 'onDidBuild');
  }

  build() {
    Flex({ wrap: FlexWrap.Wrap, space: { main: LengthMetrics.vp(5), cross: LengthMetrics.vp(5) } }) {
      Web({ src: "", controller: this.controller }).width("100%").height(500).border({ width: 1 })
        .domStorageAccess(true)
      Button("ViewPDF").onClick(() => {
        hilog.info(DOMAIN, TAG, 'ViewPDF');
        axios.request({
          method: "GET",
          responseType: "array_buffer",
          url: "http://localhost:3000/download",
          filePath: `${getContext().filesDir}/1.pdf`
        }).then(() => {
          hilog.info(DOMAIN, TAG, `done`);
          this.controller.loadUrl("file://" + getContext(this).filesDir + "/1.pdf")
        })
      })
    }
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进