问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

web端如何判断安卓系统有没有安装某个软件

发布网友 发布时间:2022-05-06 18:43

我来回答

1个回答

热心网友 时间:2022-07-01 19:20

html中其实是无法判断应用是否安装,除非在webview中通过js bridge,这里通过一种方式达到此目的。
1、编辑AndroidManifest.xml:
主要是增加第二个<intent-filter>,myapp用来标识schema,最好能保证手机系统唯一,那样就可以打开应用,而不是弹出一个选择框。
android:pathPrefix标识url的path,可以附带自己的数据通过string传递到activity,比如完整url为 myapp://xxx/openwith?data=mydata
<activity
android:name="com.abc.MainActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<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" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="myapp" android:pathPrefix="/xxx/openwith" />
</intent-filter>
</activity>
然后通过activity获得data数据:
public void onCreate(Bundle savedInstanceState) {
Uri uridata = this.getIntent().getData();
String mydata = uridata.getQueryParameter("data");
...
}
2、编写html页面:
整个页面也许是某个app的详细介绍,这里只写出关键的js代码:
function openApp() {
if (/android/i.test(navigator.userAgent)) {
var isrefresh = getUrlParam('refresh'); // 获得refresh参数
if(isrefresh == 1) {
return
}
window.location.href = 'myapp://xxx/openwith?data=mydata';
window.setTimeout(function () {
window.location.href += '&refresh=1' // 附加一个特殊参数,用来标识这次刷新不要再调用myapp:// 了
}, 500);
}
}
上面代码可以达到这样一个目的,先请求 myapp:// ,如果系统能处理,或者说已经安装了myapp表示的应用,那么就可以打开,另外,如果不能打开,直接刷新一下当前页面,等于是重置location。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 养宠物的人遵守规则,是不是就能和别人平安相处呢? 安卓APP里面是不是点击某个按钮就访问网址?学安卓有必要学web吗? android app开发时WEBSERVICE一般用什么技术 蛋糕杯怎么画 web app可以上app store 和android各个应用市场吗 为啥web app android打包出来有侧边栏 打电话开头幽默开场白 孩子2岁了,发育迟缓,不会说话,而且多动,这种情况需要怎么办? 个人怎么做好自媒体? 六个字的QQ头衔 六个 谁帮我想六个,群里的等级头衔? windows10 怎么打开网盘 怎么打开网盘 伺服系统 pg分频比定义的吗 电梯编码器脉冲分频 松下A5伺服驱动器里面的分频器是什么? 单片机里面的 脉冲经12分频 这句话什么意思? 数电关于触发器,脉冲分频? 伺服电机分频比是什么意思 什么是计数电路的分频比 电脑下载的安装包打不开 爱美厨打蛋器怎么样? 杰滋小雪人无线打蛋器用着好吗? 河道水质改善什么菌剂效果好 水产养殖水质净化菌种水质净化菌种水产养殖水产养殖菌适用在哪些水产养殖水域?有什么功效吗?拜托各位了 河道治理污水中COD超标使用什么污水菌种可以处理 净化水质的EM菌种到哪里去荬呢 水产养殖用em菌泼洒会不会净化水质提高透明度 傲世宗师和最强王者的区别 电路中什么是开路什么是短路 LOL钻石1以上最强王者不到100人,是不是钻1晋级了就直接跳过超凡大师、傲世宗师,直接晋升王者? kettle 可以做SQL SERVER 对 SQL SERVER的数据转换吗 英雄联盟S9超凡大师可以和钻2双排吗? 什么是开路,断路,短路。 什么叫做短路,什么叫断路,什么叫通路,什么叫开路? 物理中短路断路开路的区别是什么。 物理上的开路,断路,短路什么意思 短路、断路、开路 区分 短路,断路,开路是什么意思,总整混淆的,晕死…… 短路断路开路通路分别指什么?求大佬指点! 电路中断路,短路,开路分别表示什么