通过webView修改iframe的URL

通过webView修改iframe的URL

HarmonyOS
2024-05-20 20:54:04
浏览
已于2024-5-21 16:55:56修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
xuqing_2000

使用web组件加载一个html,通过webview打开使用iframe的网页,在加载iframe时传入参数确保加载的页面是正确的,使用web的JavaScriptProxy将参数从应用侧传到html中,并在iframe中加上这个参数。

核心代码解释:

import web_webview from '@ohos.web.webview' 
class testObj { 
  constructor() {} 
  test(src:string): string { 
    console.log('Web Component str' + src); 
    src="param=value" 
    return src; 
  } 
  toString(): void { 
    console.log('Web Component toString'); 
  } 
} 
@Entry 
@Component 
struct WebComponent { 
  controller: web_webview.WebviewController = new web_webview.WebviewController() 
  @State param:string='?param=value' 
  @State testObjtest: testObj = new testObj(); 
  aboutToAppear() { 
    web_webview.WebviewController.setWebDebuggingAccess(true);} 
  build() { 
    Column() { 
      Web({ src: $rawfile('t1.html'), controller: this.controller }) 
        .javaScriptAccess(true) 
        .domStorageAccess(true) 
        .onControllerAttached(()=>{ 
          this.controller.registerJavaScriptProxy(this.testObjtest, "objName", ["test", "toString"]); 
        }) 
    } 
  } 
}

html:

// t1.html 
<!DOCTYPE html> 
<html> 
  <body> 
    <h2>主页面</h2> 
    <iframe id="iframe" src="" width="500" height="400"></iframe> 
    <script type="text/javascript"> 
      console.log("objName.test result:"); 
      let str = objName.test(); 
      document.getElementById("iframe").src = "t2.html?" + str; 
      console.log("objName.test result:" + str); 
    </script> 
  </body> 
</html>
// t2.html 
<!DOCTYPE html> 
<html> 
  <body> 
    <h2>被嵌入的页面</h2> 
    <script> 
      var urlParams = new URLSearchParams(window.location.search); 
      var myParam = urlParams.get("param"); 
      console.log(myParam); 
    </script> 
  </body> 
</html>

实现效果:

分享
微博
QQ
微信
回复
2024-05-21 16:32:41
相关问题
鸿蒙Webview加载Url,alipay无法返回
7754浏览 • 1回复 待解决
WebView支持获取当前页面url吗?
450浏览 • 1回复 待解决
是否支持iframe下载文件?
357浏览 • 1回复 待解决
如何通过代码随意修改锁屏图片?
4017浏览 • 1回复 待解决
javaUI 中webview通过布局创建实例失败
4148浏览 • 1回复 待解决
对指定url图片进行下载保存
424浏览 • 1回复 待解决
nginx中url带参数问题有懂吗?
818浏览 • 1回复 待解决
富文本扩展点击监听返回url
375浏览 • 1回复 待解决
如何处理应用存在URL硬编码?
308浏览 • 1回复 待解决
是否能够自定义router跳转url
500浏览 • 1回复 待解决
如何给页面URL附加HTTP请求头
905浏览 • 1回复 待解决
WebView支持设置WebView圆角吗?
408浏览 • 1回复 待解决
基于webView嵌套滚动
129浏览 • 1回复 待解决
如何修改应用icon图标
582浏览 • 1回复 待解决
数据库连接url后缀太长了
1822浏览 • 1回复 待解决
鸿蒙对webview加载优化
291浏览 • 1回复 待解决
WebView shouldOverrideUrlLoading
385浏览 • 1回复 待解决