国庆时保障单提了一个问题:在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的吊起等问题:
在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、模块开发