HarmonyOS h5想要唤起app如何处理

想要通过分享链接,打开后跳转h5进行唤醒和跳转至app. 有相关文档吗?或者demo

HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

可以使用javaScriptProxy能够实现在前端页面调度应用侧函数,在应用侧通过startAbility拉起指定的Ability 前端页面调用参考如下代码:

import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import web_webview from '@ohos.web.webview';
import { hilog } from '@kit.PerformanceAnalysisKit';

@Entry
@Component
struct Index {

  controller: TextInputController = new TextInputController();

  webviewController: web_webview.WebviewController = new web_webview.WebviewController();

  aboutToAppear() {
    // 配置Web开启调试模式
    web_webview.WebviewController.setWebDebuggingAccess(true);
  }

  build() {
    Row() {
      Column() {
        //h5跳转
        Web({ src: $rawfile('index.html'), controller: this.webviewController }).onControllerAttached(() => {
          // 传递runJavaScript侧代码方法。
          this.webviewController.registerJavaScriptProxy(new JSImpl(), 'android', ['shareAction'])
          this.webviewController.refresh();
        }).onPageEnd(() => {
          hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
        })
          .onConsole((event) => {
            if (event) {
              console.log('getMessage:' + event.message.getMessage())
            }
            return false
          })

      }.width('100%')
    }.height('100%')
  }
}
class JSImpl {
  /**
   * JS调用端侧方法
   * 分享
   */
  shareAction() {
    console.log('跳转应用商店')
    const appId: string = 'xxx';
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
    const want: Want = { uri: `store://appgallery.huawei.com/app/detail?id=${appId}` };
    const context = getContext(this) as common.UIAbilityContext;
    context.startAbility(want)
      .then(() => { //拉起成功
      }).catch(() => { // 拉起失败
    });
  }
}
<!-- index.html -->
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="callArkTS()">h5点击跳转到HarmonyOS版应用市场详情页面</button>
<script>
    // Click Me!触发前端页面callArkTS()函数执行JavaScript传递的代码。
    function callArkTS() {
    const shareAndroid = window.android.shareAction();
    shareAndroid();
    }
</script>
</body>
</html>
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 浏览器访问H5,并唤起App
15浏览 • 1回复 待解决
HarmonyOS h5拉起app如何获取参数
16浏览 • 1回复 待解决
HarmonyOS H5调用APP图库选择图片
22浏览 • 1回复 待解决
HarmonyOS H5如何访问相册?
304浏览 • 1回复 待解决
HarmonyOS web组件加载h5h5拉起摄像头
613浏览 • 1回复 待解决
HarmonyOS 本地H5加载
40浏览 • 1回复 待解决
app内嵌入H5网页登录储存
469浏览 • 1回复 待解决
HarmonyOS webview h5的localstorage
438浏览 • 1回复 待解决
HarmonyOS H5和原生交互
18浏览 • 1回复 待解决
HarmonyOS h5和ArkTS通信
314浏览 • 1回复 待解决
HarmonyOS web与H5交互
739浏览 • 1回复 待解决
HarmonyOS H5代码如何复用?
201浏览 • 1回复 待解决
HarmonyOS web原生和H5如何交互?
556浏览 • 1回复 待解决
HarmonyOS 如何H5传递cookie值
13浏览 • 1回复 待解决
HarmonyOS h5HarmonyOS怎么通信?
186浏览 • 1回复 待解决
HarmonyOS Web组件加载H5白屏
15浏览 • 1回复 待解决