@@ -273,14 +273,7 @@ <h1 class="header-tag-title">applinks</h1>
273
273
274
274
275
275
276
-
277
-
278
-
279
-
280
-
281
-
282
- < script type ="text/javascript ">
283
-
276
+ < script type ="text/javascript ">
284
277
( function ( win , lib ) {
285
278
if ( lib . callapp ) return ;
286
279
var ua = navigator . userAgent ;
@@ -300,75 +293,80 @@ <h1 class="header-tag-title">applinks</h1>
300
293
}
301
294
} ;
302
295
296
+ /**
297
+ * 插入微信提示
298
+ */
303
299
function writeWechatTip ( o ) {
304
300
var divEle = document . createElement ( "div" ) ;
305
301
divEle . className = "wechat-tip" ;
306
302
divEle . id = "JwechatTip" ;
307
303
divEle . innerHTML = '<img style="width:100%; height:100%; z-index:-1;background-size: cover;" src=' + o . imageUrl + ' />' ;
308
304
document . body . appendChild ( divEle ) ;
309
- divEle . addEventListener ( "click" , function ( ) {
310
- divEle . style . display = "none" ;
311
- } , false ) ;
312
305
}
313
306
314
307
function G ( ) {
315
308
return ( ( ( 1 + Math . random ( ) ) * 0x10000 ) | 0 ) . toString ( 16 ) . substring ( 1 ) ;
316
309
}
317
310
318
311
lib . callapp = function ( o ) {
319
- document . body = document . createElement ( 'body' ) ;
312
+ document . body = document . createElement ( 'body' ) ; //清空浏览器的页面,因为此页面会集成到AEM框架,为了避免显示框架的主框架菜单
320
313
if ( ! o || typeof ( o ) != "object" ) return ;
321
314
if ( typeof ( o . scheme ) == "undefined" || o . scheme == "" ) return ;
322
315
if ( typeof ( o . package ) == "undefined" || o . package == "" ) return ;
323
316
if ( typeof ( o . schemeUrl ) != "undefined" && o . schemeUrl != "" ) {
324
- o . dowmloadUrl += G ( ) + G ( ) + "-" + G ( ) + "-" + G ( ) + "-" + G ( ) ;
325
- o . imageUrl += G ( ) + G ( ) + "-" + G ( ) + "-" + G ( ) + "-" + G ( ) ;
317
+ o . dowmloadUrl += G ( ) + G ( ) + "-" + G ( ) + "-" + G ( ) + "-" + G ( ) ; //加个随机数防止浏览器缓存
318
+ o . imageUrl += G ( ) + G ( ) + "-" + G ( ) + "-" + G ( ) + "-" + G ( ) ; //加个随机数防止浏览器缓存
319
+ //此处只服务于华为android手机无需进行机型判断了
326
320
if ( browser . isWechat ) {
327
321
writeWechatTip ( o ) ;
328
- } else {
329
- var url = window . location . search ;
330
- url . indexOf ( '?' ) ;
331
- o . schemeUrl += url . substr ( 0 ) ;
332
- win . location . href = o . schemeUrl ;
333
- var t = Date . now ( ) ;
334
- var loadTimer = setTimeout ( function ( ) {
335
- if ( ! document . hidden && ! document . webkitHidden && Date . now ( ) - t < o . iconnectTime ) {
336
- o . iconnectUrl += url . substr ( 0 ) ;
337
- win . location . href = o . iconnectUrl ;
338
- t = Date . now ( ) ;
339
- loadTimer = setTimeout ( function ( ) {
340
- if ( ! document . hidden && ! document . webkitHidden && Date . now ( ) - t < o . downloadTime ) {
341
- win . location . href = o . dowmloadUrl ;
342
- }
343
- } , 1000 ) ;
344
- }
345
- } , 1000 ) ;
346
- var visibilitychange = function ( ) {
347
- var tag = document . hidden || document . webkitHidden ;
348
- tag && clearTimeout ( loadTimer ) ;
349
- window . history . back ( ) ;
350
- } ;
351
- document . addEventListener ( 'visibilitychange' , visibilitychange , false ) ;
352
- document . addEventListener ( 'webkitvisibilitychange' , visibilitychange , false ) ;
353
322
}
323
+
324
+ var url = window . location . search ; //获取url中"?"符后的字串
325
+ url . indexOf ( '?' ) ;
326
+ o . schemeUrl += url . substr ( 0 ) ;
327
+ win . location . href = o . schemeUrl ; //先去尝试拉取目标app
328
+ var t = Date . now ( ) ;
329
+ var loadTimer = setTimeout ( function ( ) {
330
+ if ( ! document . hidden && ! document . webkitHidden && Date . now ( ) - t < o . iconnectTime ) {
331
+ o . iconnectUrl += url . substr ( 0 ) ;
332
+ win . location . href = o . iconnectUrl ; //如果目标app拉起不起来,尝试去拉iconnect的app
333
+ t = Date . now ( ) ;
334
+ loadTimer = setTimeout ( function ( ) {
335
+ if ( ! document . hidden && ! document . webkitHidden && Date . now ( ) - t < o . downloadTime ) {
336
+ win . location . href = o . dowmloadUrl ; //如果目标app拉起不起来,尝试去拉iconnect的app
337
+ }
338
+ } , 1000 ) ;
339
+ }
340
+ } , 1000 ) ;
341
+ // 当本地app被唤起,则页面会隐藏掉,就会触发pagehide与visibilitychange事件
342
+ // 在部分浏览器中可行,网上提供方案,作hack处理
343
+ var visibilitychange = function ( ) {
344
+ var tag = document . hidden || document . webkitHidden ;
345
+ tag && clearTimeout ( loadTimer ) ;
346
+ window . history . back ( ) ; //消除访问记录,防止浏览器强杀后再打开会重复拉起
347
+ } ;
348
+ document . addEventListener ( 'visibilitychange' , visibilitychange , false ) ;
349
+ document . addEventListener ( 'webkitvisibilitychange' , visibilitychange , false ) ;
350
+
354
351
}
355
352
}
356
353
} ) ( window , window . lib || ( window . lib = { } ) ) ;
357
354
358
- lib . callapp ( {
359
- "scheme" :"com.huawei.pcassistant" ,
360
- "package" :"com.huawei.pcassistant" ,
361
- "schemeUrl" :"com.huawei.pcassistant://mainactivity" ,
362
- "iconnectUrl" :"com.huawei.pcassistant.installer://InstallerActivity" ,
363
- "iconnectTime" :"1200" ,
364
- "dowmloadUrl" :"https://raw.githubusercontent.com/buffer8848/buffer8848.github.io/master/img/HwPCAssistant.apk?" ,
365
- "downloadTime" :"1200" ,
366
- "imageUrl" :"https://raw.githubusercontent.com/buffer8848/buffer8848.github.io/master/web_en.png?"
367
- } ) ;
355
+ lib . callapp ( {
356
+ "scheme" :"com.huawei.pcassistant" ,
357
+ "package" :"com.huawei.pcassistant" ,
358
+ "schemeUrl" :"com.huawei.pcassistant://mainactivity" , //目标app拉取的scheme
359
+ "iconnectUrl" :"com.huawei.pcassistant.installer://InstallerActivity" , //如果目标app不存在首先去拉取华为内置app iconnect的scheme
360
+ "iconnectTime" :"1200" , //等待多久去拉取内置app
361
+ "dowmloadUrl" :"http://download-c.huawei.com/download/downloadCenter?downloadId=98285&" , //目标app的下载地址
362
+ "downloadTime" :"1200" , //等待多久去下载目标app
363
+ "imageUrl" :"/content/dam/huawei-cbg-site/greate-china/cn/support/applinks/web.png?"
364
+ } ) ;
365
+ </ script >
368
366
369
-
370
367
371
- </ script >
368
+
369
+
372
370
373
371
374
372
</ div >
0 commit comments