如何使用JS判断是否安装了某个应用

JavaScript027

如何使用JS判断是否安装了某个应用,第1张

1,判断是否安装某app

这个问题只能是APP才有可能做到,代码与网页端无关

2,JS调用Andorid/IOS的接口

这个问题需要两端配合,移动APP端书写调用接口及调用规则,JS按照语法调用即可

判断当前页面是否在app内部打开,单纯的web前端还不能解决

需要客户端对userAgent添加自己app相关的字段

(useragent设置Android:http://www.jincon.com/archives/354/)

(useragent设置IOS:http://www.jianshu.com/p/5f02451b8e87)

var userAgent = navigator.userAgent.toLowerCase(), //获取userAgent

isInapp = userAgent.indexOf("sunyuki")>=0//查询是否有相关app的相关字段

希望对你有帮助!

1,当你用window.location.href去打开注册的应用程序时,如果有的话,他会去打开,没有的话,try/catch也捕获不到异常,而停止执行。

2,所以查看了淘宝中阿里旺旺的实现,当本机有安装阿里旺旺时,会打开阿里旺旺的应用程序,没有的话,就会去打开网页版阿里旺旺。可查看webww-min.js

_checkWangWangInstalled : function() {

var J = false, H = k.unparam(o.get(h)), L = (navigator.platform

.indexOf("Mac") >-1) ? true : false

if (!L) {

if (H.c == 1) {

J = true

G = 1

}

if (!J &&t.ie) {

J = this._checkWangWangVersion()

} else {

if (t.firefox || t.chrome) {

var I = navigator.mimeTypes["application/ww-plugin"]

if (I) {

var K = F.createElement("embed")

K.setAttribute("type", "application/ww-plugin")

k.DOM.css(K, "visibility", "hidden")

k.DOM.css(K, "width", 0)

k.DOM.css(K, "height", 0)

KISSY.ready(function(M) {

F.body.appendChild(K)

numberify = function(N) {

var O = 0

return parseFloat(N.replace(/\./g,

function() {

return (O++ === 0)

? "."

: ""

}))

}

if (numberify(K.NPWWVersion()) >= 1.003) {

J = true

} else {

J = false

}

if (K.tagName.toLowerCase() == "embed") {

K.parentNode.removeChild(K)

}

H.c = 0

o.set(h, M.param(H), 365, b, "/")

})

}

}

}

} else {

if (t.firefox || t.chrome || t.opera || t.safari) {

var I = navigator.mimeTypes["application/ww-plugin"]

if (I) {

var K = F.createElement("embed")

K.setAttribute("type", "application/ww-plugin")

k.DOM.css(K, "visibility", "hidden")

k.DOM.css(K, "width", 0)

k.DOM.css(K, "height", 0)

F.body.appendChild(K)

if (K.isMacWWInstalled()) {

J = true

}

K.parentNode.removeChild(K)

H.c = 0

o.set(h, k.param(H), 365, b, "/")

}

}

}

if (J) {

H.c = 1

o.set(h, k.param(H), 365, b, "/")

}

if (location.href.indexOf("topen") >-1) {

J = false

}

return J

},

_checkWangWangVersion : function() {

var J, I = true, H = k.unparam(o.get(h))

try {

J = new ActiveXObject("aliimx.wangwangx")

} catch (K) {

try {

J = new ActiveXObject("WangWangX.WangWangObj")

w = 5

} catch (K) {

if (t.ie) {

H.c = 0

I = false

G = 0

o.set(h, k.param(H), 365, b, "/")

}

}

} finally {

J = null

}

return I

},

由上可以看出,他是对ie(Activex)与firefox/chrome(在plugins下放入一个插件,可用navigate读到)分别开发了插件,然后进行判断,故依照了他进行了两个插件的开发判断。