作者grassboy2 (小胖子.吴草儿)
看板Ajax
标题[问题] 用 javascript 开启预设的 app ??
时间Thu May 4 19:24:40 2017
hmm...这个问题不知道该在 AndroidDev 板问还是在 AJAX 板问…
就是啊…假设在 Android 的 Chrome 下面,
如果有个 <a href="
http://maps.google.com">Google Map</a> 的超连结
如果用手点下去,则会用 google map 的 app 开启…
不过如果用 javascript 去触发超连结的 click 行为…
则无法用 google map app 开启…而会直接开在浏览器内…
不知道有没有什麽方法,让 javascript 针对目前超连结,
都用目前 android 的内建软体去开启呢?
对了,不只是针对 google map,
而是针对所有未知的 android 预设程式
像有些人看 ptt 文章的 app 是 moptt or JPTT
到时 javascript 在触发超连结的 click 行为时
就能直接用对应的 ptt app 开启降子…
大致如此…先感谢大家的回答了0rz...
---补充---
随手写了个测试页面:
http://grassboy.tw/tmp/inApp.php
里面第一个超连结就是 google map 连结,点了会打开 google map app
第二个 div 有绑 touchstart 事件去触发超连结的 click 事件,
但在 touchstart 时,只会在 android chrome 开启 maps.google.com
第三个 div 有绑 onclick 事件去触发超连结的 click 事件,
在 click 时,会打开 google map app
第二个 div 如果改成 mousedown 触发的话,也会打开 google map...
hmm... 一定要有滑鼠相关的行为才能触发 native app 吗?
还是说还有什麽方法能直接用 javascript 触发 native app 呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.30.116
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1493897082.A.9D5.html
※ 编辑: grassboy2 (220.135.30.116), 05/04/2017 19:51:59
这篇文章之前有爬过,他的解法是改写 window.location
踹了一下…好像也是限制滑鼠相关行为才会开启内建的 app
之所以不希望透过 click / mousedown 之类的事情…
是因为我的程式开启 app 的行为是非同步的
(透过一个 ajax request 回来开启特定的 app 降子)
不过还是感谢您的推文^^~
※ 编辑: grassboy2 (220.135.30.116), 05/05/2017 00:38:03