HarmonyOS web联调中如何给js传递多个参数?

当传递单个参数时:

this.mWebViewController.runJavaScript(`nativeGetApiEncryptionFinishCall('${finalParamString}')`); 

这么写可以。

当传递多个参数时该如何书写?

阅读 918
1 个回答

参考示例:

Web({ src: $rawfile('TestonShowFileSelector.html'), controller: this.controller })
  .javaScriptAccess(true)
  .domStorageAccess(true)
  .onShowFileSelector((event) => {
    // //-------调用相册-------------------------
    console.log('MyFileUploader onShowFileSelector invoked')
    const photoSelectOptions = new picker.PhotoSelectOptions();
    // 过滤选择媒体文件类型为IMAGE_VIDEO_TYPE
    photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_VIDEO_TYPE;
    // 选择媒体文件的最大数目
    photoSelectOptions.maxSelectNumber = 8;
    //let uris: Array<string> = [];
    const photoViewPicker = new picker.PhotoViewPicker();
    photoViewPicker.select(photoSelectOptions).then((photoSelectResult: picker.PhotoSelectResult) => {
      this.uris = photoSelectResult.photoUris;
      let file1 = fs.openSync(this.uris[0])
      let array: ArrayBuffer = new ArrayBuffer(fs.statSync(file1.fd).size)
      fs.readSync(file1.fd, array)
      let unit = new Uint8Array(array)
      let base64 = new util.Base64Helper();
      let mystr = base64.encodeToStringSync(unit);
      this.base64Str = "myFunction(\"" + mystr + "\")"
      this.controller.runJavaScript(this.base64Str)
      console.info('photoViewPicker.select to file succeed and uris are:' +
      this.uris); //file://media/Photo/11/IMG_1713942933_005/IMG_20240424_151353.jpg
    }).catch((err: BusinessError) => {
      console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`);
    })
    return false
  })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进