Web组件页面内跳转时自定义WebHeader问题?

我们有比较多的业务是用的H5来实现,页面加载时,在httpHeader中会包含一些信息,比如用户信息,当前app主题信息等,HarmonyOS 上首次加载网页的时候可以用loadUrl带上header,但是在页面再次跳转时无法加上header信息,想问下这种场景有什么解决方案。目前我尝试过在onInterceptRequest拦截请求再用http去发送请求带上header的方式,但是没有效果

阅读 745
1 个回答

针对ArkTS中使用webview,设置webHeader。

可参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V1/js-apis-webview-0000001630265617-V1\#ZH-CN\_TOPIC\_0000001666708076\_\_geolocationpermissions

使用web的onInterceptRequest方法可以拦截

示例代码:

import web_webview from ‘@ohos.web.webview’
@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController()
  build() {
    Column() {
      Web({ src: $rawfile(‘i.html’), controller: this.controller })
        .onInterceptRequest((event) => {
          if (event) {
            console.log(‘urldddd:’ + event.request.getRequestUrl())
          }
          return null
        })
    }
  }
}
html:
<html>
<head>
  <script src="https://xxx.com/vue/dist/vue.js"></script>
  <script src="https://xxx.com/vue-router/dist/vue-router.js"></script>
  </head>
  <body>
  <div id="app">
  <h1>Vue Router 示例</h1>
  <ul>
  <li><router-link to="/">首页</router-link></li>
  <li><router-link to="/about">关于</router-link></li>
  </ul>
  <router-view></router-view>
  </div>
  <script>
  // 定义两个组件
  var Home = {template: '<div><h2>这是首页</h2><p>欢迎来到我的网站</p></div>' };
var About = {template: '<div><h2>这是关于页面</h2><p>Bing是一个智能的搜索引擎,可以帮你找到你想要的信息</p></div>' };
// 创建一个路由器实例 
var router = new VueRouter({
  // 定义路由规则 routes:
  [{ path: '/', component: Home },
  { path: '/about', component: About }]
});
// 创建和挂载根实例
var app = new Vue({el: '#app', router: router });
</script>
  </body>
  </html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进