android 是否安装 吊起

我爱海鲸 2020-10-09 17:32:07 暂无标签

简介android h5 是否安装和吊起等问题

国庆时保障单提了一个问题:在app端打开一个h5页面时出现404,导致应用无法被下载或吊起

分析问题:找到相应问题的代码,打日志查看问题,发现h5页面的地址在浏览器上面是能够正常打开的,且能够正常的下载和吊起。发现在app端打开的h5地址存在一个token,token导致在跳转时,下载的app地址改变了导致app不能够正常的下载。

既然问题找到了就解决问题。

在此记录下在解决问题时运用到的一系列技术手段

首先android是否安装该app的问题,没有安装进行下载,安装了进行吊起

public static boolean isAvilible(Context context, String packageName){

    //获取packagemanager

    final PackageManager packageManager = context.getPackageManager();

    //获取所有已安装程序的包信息

    List<PackageInfo> packageInfos = packageManager.getInstalledPackages(0);

    //用于存储所有已安装程序的包名

    List<String> packageNames = new ArrayList<String>();

    //从pinfo中将包名字逐一取出,压入pName list中

    if(packageInfos != null){

        for(int i = 0; i < packageInfos.size(); i++){

            String packName = packageInfos.get(i).packageName;

            packageNames.add(packName);

        }

    }

    //判断packageNames中是否有目标程序的包名,有TRUE,没有FALSE

    return packageNames.contains(packageName);

}

参考文章:

android检测手机是否安装某个app

在android实现app的吊起等问题:

在AndroidManifest.xml上配置:

        <activity

            android:name="cn.qtone.xxt.ui.BrowserActivity"

            android:configChanges="orientation|screenSize|keyboardHidden"

            android:exported="false"

            android:screenOrientation="portrait" >

            <intent-filter>

                <!--scheme 相关信息配置-->

                <data android:scheme="hecaiyun"

                    android:host="launch"/>

            </intent-filter>

        </activity>

在相应的Activity即BrowserActivity中添加一段吊起代码:

Uri uri = Uri.parse(url);

Intent intent = new Intent(Intent.ACTION_VIEW, uri);

startActivity(intent);

参考文章:

Android - scheme 一个app跳转另一个app、模块开发

移动浏览器H5页面通过scheme打开本地应用

Android APP打开另一个APP完整逻辑实现





你好:我的2025