通过webView修改iframe的URL

通过webView修改iframe的URL

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

使用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
相关问题
关于HarmonyOS webviewiFrame使用问题
329浏览 • 1回复 待解决
HarmonyOS webview加载url白屏
33浏览 • 1回复 待解决
HarmonyOS WebView加载url无法滚动
77浏览 • 1回复 待解决
鸿蒙Webview加载Url,alipay无法返回
9252浏览 • 1回复 待解决
WebView支持获取当前页面url吗?
1059浏览 • 1回复 待解决
是否支持iframe下载文件?
806浏览 • 1回复 待解决
HarmonyOS web iframe 注入.js 问题
576浏览 • 1回复 待解决
webview加载url后页面一片空白,无报错
2755浏览 • 1回复 待解决
H5通过url scheme拉起对应应用
568浏览 • 1回复 待解决
如何通过代码随意修改锁屏图片?
5543浏览 • 1回复 待解决
iframe标签 src内部访问top跨域问题
320浏览 • 1回复 待解决