欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

H5App唤起其他应用(Android平台)

程序员文章站 2022-03-28 13:48:25
...

前期的一些设置直接用HbuildX进行,参考的链接
Android 平台 HTML5+ SDK的集成(HBuilder离线打包)
里面写的很详细,感谢作者,一步步按照配置来就可以了

被唤起App配置

在AndroidStudio里在AndroidManifest.xml配置信息进行添加

<intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
 <intent-filter>
                <action android:name="android.intent.action.VIEW"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
                <category android:name="android.intent.category.BROWSABLE"></category>
                <data
                    android:host="host"
                    android:path="/path"
                    android:scheme="scheme">
                </data>
                <!--&lt;!&ndash;<a href="[scheme]://[host]/[path]?[query]">启动应用程序</a>&ndash;&gt;-->
 </intent-filter>

注意这两个 调用意图要分开,否则可能创建的app不显示应用图标,其中scheme必须要有。
被唤起的时候可以在path后面加一下自定义的参数,这些参数可以自用,下面有例子

LayaAir里面加调起代码(我用的腊鸭开发)

在index.html里面添加 ,这里在Android上面监听到plusready 后 设置手机常亮,这也是njs插件常用的方法

 document.addEventListener("plusready", function () {
            plus.device.setWakelock(true);
        }, false);

接下来是判断被唤起app是否被安装

var getIntentByPackageName = function (pkgname) {
    plus.android.importClass('android.content.pm.PackageManager');
    var MainActivity = plus.android.runtimeMainActivity();
    var PackageManager = MainActivity.getPackageManager();
    return plus.android.invoke(PackageManager, 'getLaunchIntentForPackage', pkgname);
 }
 var isInstalledApp = function (pkgname) {
    return getIntentByPackageName(pkgname) != null;
  }

举例

let exit = Laya.Browser.window.isInstalledApp("com.xxxxx.xxxxx")//true代表安装了应用
alert("exit=" + exit);

应用调起

var openApp = function (url,callBack,packageName) { 
            errorCB=callBack
            identity=packageName
            plus.runtime.openURL( url, errorCB, identity ); 
        }

举例

Laya.Browser.window.openApp("scheme://host/path?name=zidingyicanshu1&zidingyicanshu2=26", () => {
                            alert("哈哈哈哈,调起失败");
                        }, "com.xxxxx.xxxxx")
                        }//?后面可以加自定义参数

HBuilder 去掉启动时候的app名字和灰色界面------设置好应用的splash为自己的图片
H5App唤起其他应用(Android平台)
附上参考链接
Android平台本地(离线)打包指南 - Android Studio
Android平台设置UrlSchemes,实现被第三方应用调用
web-launch-app
HTML 5+ SDK 更新日志
官方例子