在原生应用中打开微信的指定网页,通常可以通过调用微信的URLScheme来实现;webview的H5页面打开微信文章也是相同的处理办法

一、前提条件

1.微信支持特定的URL Scheme,可以用来打开指定的网页。需要使用以下格式的URL:

weixin://dl/business?ticket=xxxxx   或者  weixin://dl/webview?url=你的网页URL

2.需要有微信SDK

ohpm i @tencent/wechat_open_sdk

下载好了之后,oh-package中就有了微信的SDK

3.HAP包中的module.json5中,querySchemes里必须要有weixin

"querySchemes": [
    "weixin",
    "alipays"
],

二、实现方法

1.拦截web组件上的url

Web({ src: '', controller: this.controller })
  .onLoadIntercept((event) => {
    return this.webviewModel.handleLoadIntercept(event);
  })


 //然后拿到URL
 public handleLoadIntercept(event: OnLoadInterceptEvent) {
  let url = event?.data.getRequestUrl();

 }

2.然后再判断url是否以weixin://dl/business开头

 public handleLoadIntercept(event: OnLoadInterceptEvent) {
  let url = event?.data.getRequestUrl();

  if(url.includes('weixin://dl/business')){
    this.wxToArticle(url)
  }
 }

3.触发打开微信,微信自动解析url

/**
* @param url:跳转微信文章链接
* @date: 2025.3.26
*/
async wxToArticle(url: string) {
    let context = getContext(this) as common.UIAbilityContext
    //使用want搭配startAbility进行跳转微信
    let want:Want = {
        uri: url,
        action: 'ohos.want.action.viewData',
    }
    try {
        context.startAbility(want)
    } catch (e) {
        if (e) {
            ServiceAccessFilter.showToast('打开微信失败')
        }
    }
}
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐