鸿蒙系统作为国内自研操作系统,一经发布风头无两。虽然目前鸿蒙应用迁移还存在诸多三方生态难题,但幸运的是鸿蒙系统目前还支持Android应用,就是说可以通过一个鸿蒙应用跳转到Android应用,这也是一种给APP引流的新渠道。

方案一:鸿蒙原生跳转(推荐)

通过鸿蒙的startAbility跳转,但是,目前暴露出来的action没有能够对应到android中Intent.ACTION_VIEW的,遂放弃,待鸿蒙后续开放接口。

    public void launchApp() {
        Uri uri = Uri.parse("market://details?id=com.tencent.mm");
        Intent intent = new Intent();
        // 两个鸿蒙废弃接口,之前还没敢用,看到论坛有说可以传入Android的参数,试了一试,效果拔群
        // 具体原理咱也不懂,不敢问,也不敢多说。。。
        intent.setAction("android.intent.action.VIEW");
        intent.setUri(uri);
        intent.addFlags(Intent.FLAG_ABILITY_NEW_MISSION);
        startAbility(intent);
    }

完美解决“安装跳应用,未安装跳应用市场”的需求。
参考论坛:https://developer.huawei.com/consumer/cn/forum/topic/0201645985675310304?fid=0101587866109860105

方案二:鸿蒙集成android-jar跳转

用Android写跳转逻辑,然后打包成jar,由鸿蒙应用集成,但是存在context转换问题,目前鸿蒙没给暴露两个系统context转换接口,可以考虑用反射搞,但是成本和后续维护风险太大了。
android打jar方法:https://www.cnblogs.com/lobtao/articles/13554511.html
android跳转方法:https://blog.csdn.net/dubo_csdn/article/details/81743491

方案三:H5跳转

通过JS跳转,这个基本实现,但是JS无法判断当前设备是否安装app,目前可以实现到统一跳转到应用市场,再从应用市场跳转。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <button
                id="button"
                onclick="openWeChat()"
                style="background-color:#70DBDB;height:30px;">打开APP
        </button>

        <script type="text/javascript">
            function openWeChat() {
                window.location.href ="market://details?id=com.tencent.mm";
            }
        </script>
    </body>
</html>

通过鸿蒙拉起H5页面的方法,详见【如何开发一个鸿蒙服务卡片并拉起一个H5页面】

方案四:H5+鸿蒙跳转

JS+原生,由原生提供判断应用是否安装的结果,返回给JS,再进行跳转,目前没有找到鸿蒙原生接口,遂放弃,待鸿蒙后续开放接口。

Logo

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

更多推荐