Comments (23)
近期ios版本qq禁止了scheme和universalLink唤起app,安卓不受影响 - 18年12月23日
这个我代码里有写过注释
如果你要添加他们家白名单,99.9%没戏,就走中间页吧
from callapp-lib.
@suanmei 哦哦,好的,谢谢啦~~
这边和产品沟通了下走中间页了,再次感谢
from callapp-lib.
@suanmei 大佬,关于微信唤端,安卓手机,这边又遇到点问题:点击唤端之后会跳到一个中间页面,应该是鹅厂自己的中间页,我这边没写过,然后会提示在浏览器中打开,我点击右上角接着选择在浏览器中打开,之后有的机子跳浏览器之后能打开应用,但是有的跳浏览器之后就停留在应用宝的页面那不动了,应用宝上也没有打开的字样,都是下载的字样。这是兼容性问题吗,这个应该怎么搞啊?求指点,感谢
from callapp-lib.
我刚才自己调了下,那个不叫中间页,那个就是应用宝的地址,只不过你的微信手机里没有应用宝 app ,所以没法判断你是否安装了你的 app ,你如果安装了应用宝在微信中是可以直接唤起应用宝,然后通过应用宝唤起你的 app 的
from callapp-lib.
确实,那个不是中间页,就是应用宝自己的页面, 是类似这样的一个地址:https://a.app.qq.com/o/simple.jsp?pkgname=包名&android_schema=我的url schema#
,微信提示在浏览器打开,点击浏览器打开之后,浏览器会打开一个应用宝的页面,打开的就是这个页面。
然而到了这个页面之后:
- 没装应用宝:有的手机会直接打开app,而有的手机就会停留在这个页面不动
- 装了应用宝:停留在这个页面的手机会打开应用宝,然后点应用宝的“安全打开”可以打开app
那这样保险的做法我觉得是不是:只要是微信,就直接提示用户用浏览器打开,然后再让用户点一遍打开app的按钮,这样就保险了,就能唤起了,不过这样体验就……🤣🤣
from callapp-lib.
微信安卓端唤端通过应用宝打开,算是业界的一个通用方法,这个方法我也觉得尚可,因为如果装了应用宝,是可以直接唤起你的app并且直接打开想要打开的页面的。
如果按你的那个做法,你得在你的页面里面,做一个 ua 判断,ua 是微信就展示遮罩层,提示用户在浏览器中打开。那你这部分就是唤端逻辑和页面逻辑耦合在一起了。
当然,具体怎么做也是看你啦
from callapp-lib.
下次再有问题直接开一个新的issue吧😂
from callapp-lib.
@suanmei 下次不那么着急关问题,至少等上线之后经过百万PV验证再关,哈哈🤣🤣
- 话说我发现微信中点击打开app,如果出现了应用宝的页面,提示“点击右上角选择浏览器打开”的页面的时候,此时页面的
url
是https://a.app.qq.com/o/simple.jsp?pkgname=包名&android_schema=我的url schema
,而如果在浏览器中点击打开app,则可能是https://a.app.qq.com/o/simple.jsp?pkgname=包名
而没有后面的url schema
部分,这个是因为唤端失败,跳转了我设置的fallback
了对吧?前一种情况中url
拼了url shcema
是你这个库做的处理是吧? - 微信安卓唤端通过应用宝打开,是业界的一个通用方法,如果用户装了应用宝,那自然是方便了,直接唤起应用宝,然后去应用宝中打开app,但是要是没有装应用宝呢?那就只有通过自己写一个遮罩一个中间页提示用户去浏览器中打开我的页面了对吧
- 另外还有一种情况就是:有的机子,只在部分浏览器中能成功唤端,其他的都不能唤起,也就是我通过遮罩/中间页的方式引导用户离开微信去浏览器打开,都会走到
fallback
这里停住,就是到了应用宝的界面,界面上都是下载的字样,没有打开的字样……这种是不是就没辙了呢?毕竟唤端的逻辑你的库都帮我们封装好了,但是还是走到了失败的回调 - 以及另一种情况:装了应用宝,原先不能唤起的浏览器能唤起了,甚至都不用先唤起应用宝,直接就能唤起app……但是这需要用户装过应用宝,如果没装过就不行,就会失败,走到应用宝下载应用的页面,但是装了应用宝卸载之后就又能直接唤起了,啊,头大,求指点🤣
总之就是能不能有一种方法,能保证在浏览器中能唤起,不需要通过应用宝,毕竟应用宝不同于app store一样每个安卓机子上都一定有,能在浏览器中都唤起了,那么微信里啊,qq里啊都能通过遮罩/中间页引导用户到浏览器中打开,然后再唤起app
from callapp-lib.
貌似我试了试,不能唤起app的,比如微信和某些浏览器,只要装了应用宝之后,都能通过唤起应用宝,再点击应用宝的打开按钮唤起app,或者能不经过应用宝,而直接打开app
from callapp-lib.
我看你把微信和浏览器的唤端混在一起了,浏览器是浏览器,微信是微信,微信用应用宝的策略是因为基本没有几个app能在微信中唤端。
scheme 在浏览器中唤端虽然有失败的情况,但你感觉是安装应用宝的人多还是能成功唤起app的浏览器多。
给你一个建议是让你们的安卓同学增加一点开发量支持一下 APP Link,效果等同于 ios中的 universal Link。这是最好的办法。
最后回答一下第一个问题,在浏览器中不可能出现应用宝的链接,因为只有在微信中才会打开应用宝🤔
from callapp-lib.
啊,这么说貌似还真是,微信,浏览器,我混起来了🤣🤣
我觉得是能通过url schema
唤起app的浏览器比安装应用宝的用户多吧,毕竟后者是用户的习惯,但是你后面说建议让安卓同学支持一下应用宝的APP Link
,就意味着装应用宝的用户比能通过url schema
唤起app的浏览器多了是吧?因为我看了你在掘金发的文章,APP Link
是通过应用宝来打开指定页面用的,是和应用宝有关的东西;
用户如果安装了应用宝,那问题就不存在了,无论是通过微信唤端,还是浏览器唤端,都能通过唤起应用宝,然后通过应用宝来唤起app了,或者不通过应用宝而直接唤起app,总之最后都能唤起app了🤔🤔
可是就像你说的,有可能在浏览器中会存在唤端失败的情况,比如我引导用户离开微信到浏览器中打开,用户点了右上角,选择在浏览器中打开,结果浏览器中他点打开app,依旧唤起失败,这就尴尬了,毕竟没有办法判断哪个浏览器能唤端成功,然后让他选择那个浏览器。像这种有的浏览器唤起失败,有的唤起成功的,是不是就只能任其自生自灭了呢🤣🤣
from callapp-lib.
可能我没说清楚哈,我的意思是,应用宝的用户是远远小于 scheme 能成功唤起的浏览器的,而且 scheme 唤起可能不止在浏览器,有可能在钉钉、微博,是吧,都有可能。
然后 APP Link
和应用宝没有关系,它也是一种 url ,APP Link
之于andriod 如同 Universal Link
之于 ios,它是一种只要你安装了 app ,只要在安卓(现在市场大部分安卓系统版本都支持 APP Link)中,就 100% 可以唤起 app,现在还没看到有文章说微信禁止APP Link,你正好可以试验一下😂
至于你问的微信引导到浏览器还失败这种情况,目前就让它自生自灭了。原因有很多,比如,其实市场上现存的浏览器如果无法通过 scheme 唤端,有不少是因为它们也做了白名单限制,这是你无法跨过的
from callapp-lib.
哦哦,原来这个app link
不是应用宝的那个app link
啊!我稍微看了下,安卓的app link
就像你说的,类似ios
的universal link
,另外还有一种是应用宝的app link
,我看了下腾讯开放平台里的描述:应用宝AppLink,是移动互联网时代打通开发者App内资源与用户需求的一种新的模式。通过整合和索引合作APP的内部资源,将App内信息呈现给用户,用户通过点击相应内容可直接跳转至开发者Native App的指定页面
,也就是你博文里面说的了。
然后的话这边还有几个问题要问下你🤣🤣:
- 我看了下你的这个库,里面没有关于安卓
app link
的配置, 这时候应该怎么使用安卓的app link
呢?我判断如果是安卓,那我就window.location.href=app link
来用? - 如果安卓配置了
app link
,那配置里面的intent
就不用传了对吧,毕竟不用这个了,而且文档里也说不是必填项 - 似乎有网友反映用安卓
app link
需要翻墙!?那不就呵呵了嘛,还是具体的你也不是太了解🤔🤔
from callapp-lib.
因为我们没实现 APP Link
,所以我在 callapp-lib
库中没有添加。
关于你说的翻墙
这点,我刚才看了下,好像是真的。怪不得国内关于 APP Link
应用的资料一直很少,后面我把这个更新到文章里,提醒大家注意一下😂
那看来没有更好的解决方法了,在安卓微信里就老老实实用应用宝吧
另外我看你的配置里没有配置 Universal Link,最好把这个能力配置上,唤端是真的强😏
from callapp-lib.
omg……
安卓如果装了应用宝,那倒好说,微信直接打开应用宝,然后唤起app,可要是没装,就狗带了。
以及如果遇到没法唤起app的浏览器,那就只有让它自生自灭了。
啊,感觉这做了和没做差不多诶,这个功能太依赖环境了🤣🤣
另外就是ios
的universal link
,配置起来好麻烦啊,又要跨域,又要重定向的,ios
本身都会有app store
,通过唤起app store
再唤起app虽然不完美,universal link
能直接唤起app,可以配置起来真的好麻烦啊,之前试了几次,一直各种失败🤣🤣
from callapp-lib.
你不能只考虑微信啊,兄dei
安卓微信没有更好的办法,各家手机厂牌都有自己的应用市场,谷歌应用商店没啥人用,同意不起来,微信又有点流氓。两全其美的方法目前是没有的,大家都在妥协
或者加把劲让腾讯爸爸收购了😂。。。
from callapp-lib.
哈哈哈,大佬太幽默啦,让鹅厂爸爸收购,哈哈🤣
主要是微信现在用的人很多,所以我一直纠结在微信上
那所以最后就是:
- 安卓微信就没辙了,就看用户有没有装应用宝了,有就唤起,没有就没法了(遇到没装应用宝也能唤起就是RP好了…)
- 安卓的浏览器就看“命”了,遇到能唤起的浏览器就唤起(依旧是RP好…),遇到没法唤起的也是就没发了
毕竟像你说的,有些是血缘的关系了🤣🤣
from callapp-lib.
可以考虑从小程序端发力解决,就是小程序从 APP 分享消息卡片的能力打通,从你们的 app 分享到微信以小程序卡片的形式,是可以从小程序中直接唤起 app 的。
from callapp-lib.
emmm…你的意思是app中分享到微信中的内容是像分享一个小程序那样的,分享到微信中后是一个微信小程序卡片,然后再打开那个卡片再唤起app?
可是我这是要用网页唤起app啊,一开始是网页内容,然后才是app,就像淘宝手机页面,然后唤起淘宝手机客户端那样,你那个说法我不是太理解诶🤣🤣
from callapp-lib.
你用优酷或者即刻分享到微信就明白了,打开后的小程序里面有 '打开app' ,可以正常唤起app。
当然这个我也没操作过,不多瞎指点了,只是提供个思路
from callapp-lib.
@suanmei 周一和PM沟通了下,不,应该是解释了一下,最后就只能维持现状了
微信打开看运气了,打不开一律到应用宝或者app store;
然后浏览器基本都能唤起,大佬666;
qq里面也基本都能唤起;
遇到换不起的都到应用宝或者app store。
这个问题就先关闭啦,有新的问题我再开一个issue,最后,再次感谢大佬提供的唤端库🤣🤣
from callapp-lib.
@SilentFlute 客气啦😁为人民服务
from callapp-lib.
@suanmei 哈哈哈❤️❤️
from callapp-lib.
Related Issues (20)
- 请问该库可以支持唤起Facebook、Twitter、海外微信么? HOT 1
- 安卓红米k30手机下的qq浏览器点击第一次唤起失败,第二成功。 HOT 2
- qq唤不起 app,但默认浏览器可以唤起app
- PC谷歌浏览器安卓模拟器失败无法跳转失败地址 HOT 3
- TypeError: document.body.append is not a function HOT 1
- IOS qq和qq浏览器无法唤起app,android 微信无法唤起app HOT 1
- 请问fallback有没有提供回调函数? HOT 2
- 作者你好,请问能否为项目添加license HOT 1
- 是否考虑集成微信开放标签来解决微信唤端问题? HOT 1
- h5中唤起APP直接跳到了AppStore(本地已安装对应APP) HOT 3
- 你好 想问下现在能否支持跳转谷歌商店呢,如果没有,后续可以加跳转谷歌商店,或者自定义其他渠道的跳转链接 HOT 3
- 网页可以在不进行任何用户操作的时候自动换起 app 吗? HOT 1
- 大佬,微信浏览器唤醒app有开发标签唤醒了,考虑集成吗 HOT 1
- Why is there no complete example
- 在超链接中调用唤醒方法:单击 / 双击,执行的唤醒流程不一致 HOT 3
- deeplink=scheme://goto?https://xxxx?key=value,跳转有问题
- 此工具是不是不能唤醒whatsapp? HOT 1
- 【开源自荐】每日更新的前端面试题库
- callapp-lib 唤醒app成功后怎么关闭本身的定时器 HOT 1
- iOS企业微信内无法唤起APP,直接唤起APP Store
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from callapp-lib.