js 能怎么启动淘宝联盟手机客户端手机淘宝客户端应用吗

怎样用html或js控制打开客户端的应用程序如QQ_百度知道
怎样用html或js控制打开客户端的应用程序如QQ
我有更好的答案
这个还真不知道!不过,估计需要js什么的,只是,这个似乎涉及到权限问题
采纳率:55%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
应用程序的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。4被浏览406分享邀请回答0添加评论分享收藏感谢收起0添加评论分享收藏感谢收起写回答2016年4月 移动开发大版内专家分月排行榜第二
2017年8月 移动开发大版内专家分月排行榜第三2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
2016年4月 移动开发大版内专家分月排行榜第二
2017年8月 移动开发大版内专家分月排行榜第三2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
2016年4月 移动开发大版内专家分月排行榜第二
2017年8月 移动开发大版内专家分月排行榜第三2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
2016年4月 移动开发大版内专家分月排行榜第二
2017年8月 移动开发大版内专家分月排行榜第三2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。Android js启动APK
1.在移动设备访问m.alipay.com时,如果本地安装了支付宝客户端,则会调用本地客户端,没有安装则会跳转到下载页面,提示安装。刚好有这样的需求,就分析了下支付宝的实现。网上参考了其他人的实现,大部分都是关于APK和本地js交互,相关资料可以参考
https://developer.android.com/guide/webapps/webview.html官方的开发指南。
2. APK启动流程
在启动APK时,系统会发出对应的intent,根据包名加intent来启动对应activity,activity如果存在对应的intent-filter则启动该应用,如果多个应用同时匹配,则会出现选择框让用户选择。vcD4KPHA+yOfPwqOsxvS2r2RlbW8udGVzdGpz06bTw7XETWFpbkFjdGl2aXR5PC9wPgo8cD5BY3Rpdml0eU1hbmFnZXIoMzEzKTpTVEFSVHthY3Q9YW5kcm9pZC5pbnRlbnQuYWN0aW9uLk1BSU4gY2F0PVthbmRyb2lkLmludGVudC5jYXRlZ29yeS5MQVVOQ0hFUl1mbGc9MHgxMDIwMDAwMCBjbXA9ZGVtby50ZXN0anMvLk1haW5BY3Rpdml0eSBibmRzPVsxMyw3Nl1bMTI3LDIxMV19IGZyb20gcGlkNjA3PC9wPgo8cD4gPC9wPgo8cD4zLuSvwMDG97rNsb612EFQS7XEvbu7pTwvcD4KPHA+QW5kcm9pZCBtYW5pZmVzdLHqx6myzr+8udm3vbXEv6q3ota4xM88L3A+CjxwPmh0dHA6Ly9kZXZlbG9wZXIuYW5kcm9pZC5jb20vZ3VpZGUvdG9waWNzL21hbmlmZXN0L21hbmlmZXN0LWludHJvLmh0bWwgPC9wPgo8cD7PwsPmysdVQ7XE0ru49jxpbnRlbnQtZmlsdGVyPjwvcD4KPHA+PGludGVudC1maWx0ZXI+PC9wPgo8cD48YWN0aW9uYW5kcm9pZDpuYW1lPQ=="android.intent.action.VIEW" />
标签,可以拦截浏览器的请求,data可以增加过滤的条件。为了防止我们的启动APK scheme被其它应用拦截,尽量使用唯一的标识符如域名等。
在android应用中application的详细配置实例:
在MainActivity增加了
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.BROWSABLE"/>
<dataandroid:scheme="testjs"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
android:name="demo.testjs.MainActivity"
android:label="@string/app_name">
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.BROWSABLE"/>
<dataandroid:scheme="testjs"/>
在web页面中加入如下测试代码
<ahref="index."id="openApp"style="display:none">APK客户端下载链接
&scripttype=<em&"text/javascript">
if(navigator.userAgent.match(/(iPhone|iPod|iPad);?/i))
//判断是否是android设备浏览器
if(navigator.userAgent.match(/android/i)) {
if (navigator.userAgent.match(/android/i)) {
document.getElementById('openApp').onclick =function(e) {
// 通过iframe的方式试图打开APP,如果能正常打开,会直接切换到APP,并自动阻止a标签的默认行为
// 否则打开a标签的href链接
var ifrSrc ='testjs://platformapi/startApp?name=tom&age=18';
if (!ifrSrc) {
var ifr = document.createElement('iframe');
ifr.src = ifrS
ifr.style.display = 'none';
document.body.appendChild(ifr);
setTimeout(function() {
document.body.removeChild(ifr);
if (document.all) {
document.getElementById('openApp').click();
// 其它浏览器
var e = document.createEvent("MouseEvents");
e.initEvent("click",true,true);
document.getElementById("openApp").dispatchEvent(e);
新建web工程,加入测试页面。在手机浏览器上访问该页面,如果本地安装了对应的APK,则会启动APK,没有安装则跳转到对应的下载页面。以上web页面的脚本从支付宝手机客户端访问的页面截取的。(UC7.8版本的android浏览器可以下载保存网页)
4.获取浏览器传递的&#20540;
var ifrSrc =
'testjs://platformapi/startApp?name=tom&age=18';
实例中会提交name和age&#20540;
在activity中可以取到通过浏览器传递的&#20540;
void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if(Intent.ACTION_VIEW.equals(getIntent().getAction())){
Intentintent = getIntent();
Stringscheme = intent.getScheme();
Uriuri = intent.getData();
Log.e(tag,"scheme: "&#43;scheme);
Log.e(tag,"path: "&#43;uri.getPath());
Log.e(tag,"Host: "&#43;uri.getHost());
Log.e(tag,"name: "&#43;uri.getQueryParameter("name"));
Log.e(tag,"age: "&#43;uri.getQueryParameter("age"));
可以取到scheme、 url、参数列表等信息
PS:浏览器实际上没有办法判断到本地是否安装了对应的APK文件,支付宝的实现实际上了打开了一个隐藏的url地址,该url如果被本地apk拦截,则启动本地apk,如果url没有被拦截,则在1S后删除添加的'iframe',跳转到下载页面。(不管url是否被本地拦截成功,1S后都会跳转下载页面,只不过拦截成功,本地APK启动页面会遮住浏览器的下载页面)
参考其它人用window.location 或
window.open标签也可以启动本地APK,但没有处理url跳转不存在的问题。(window.open未测试成功)
window.location实现方式:
Manifest.xml配置
<actionandroid:name="android.intent.action.VIEW"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.BROWSABLE"/>
<dataandroid:scheme="testjs"android:host="demo.testjs"/>
web页面添加
&scripttype=<em&"text/javascript">
alert("启动APK");
window.location="testjs://demo.testjs";
https://download.csdn.net/detail/qq/6794481
https://pan.baidu.com/s/1pJk8cmn 在android2.3&#43;tomcat6&#43;win7测试通过他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 怎么启动淘宝联盟手机客户端 的文章

 

随机推荐