突破Android微信微博浏览器限制直接拉起应用

如上面所说

前言

众所周知,微信和微博等应用通过限制浏览器中的自定义协议打开,以防止用户跳出应用本身。这一需求确实常见,但大型应用如微信和微博,应当更多地考虑用户选择权和社会责任感。右上角使用浏览器打开成为前端开发者必备功能,浪费了大量人力财力,同时可能给开发者带来心痛和无语。因此,是否可以采用弹框让用户选择是否打开特定应用,从而将选择权交还给用户,是一种更为人道的解决方案。

现状

自定义协议在移动端提供了一种独特的交互方式,极大地提高了用户体验,成为每个应用的标配。通过特定的链接触发拉起应用(例如,通过“orpheus”协议)。然而,微信和微博如何封禁自定义协议呢?Android的WebView控件拥有“shouldOverrideUrlLoading”回调,任何链接打开都会先走这个回调,由应用判断是否接手处理。

方法

解决此问题的方式除了在前端实现右上角用浏览器打开功能,还有其他思路可供参考。首先,可以尝试伪装成白名单协议,比如将应用名设为京东的协议名称,这样即使用户未安装京东,也能直接拉起应用。如果用户手机中已安装京东,则会弹出选择界面,让用户决定使用哪个应用。这种方法虽然有些“猥琐”,但能解决部分问题。

其次,利用右上角浏览器打开功能的机制,可以通过设置Intent的优先级让应用在弹框中排在第二位。这要求应用实现支持http/https协议,并在Intent中配置域名信息,以提高在系统排序中的优先级。甚至可以将http/https的URL转换为native参数,直接打开native页面,避免中间的webview跳转。

突破

要实现更为复杂的解决方案,需要程序在后台维持一个活着的进程。这可以通过在H5页面给应用发送请求实现。使用本地HttpServer监听来自本机的请求,并在接收到请求时使用Intent.FLAG_ACTIVITY_NEW_TASK启动Activity。然而,微信和微博浏览器限制了本地地址(如127.0.0.1和localhost),因此需要通过域名解析到本地地址来绕过限制。这种方式可能被封禁,但仍然能提供一种突破限制的途径。

最后,程序保活是一个复杂的问题,不是本文讨论的范畴。重要的是开发者需要考虑如何在实现功能的同时,尽量减少对用户选择权的限制,以及在遵循平台规则的基础上提供更好的用户体验。对于那些提供解决方案和关注开发者权益的平台,应给予支持和鼓励。
温馨提示:答案为网友推荐,仅供参考
突破Android微信微博浏览器限制直接拉起应用
如果用户手机上没有安装对应的白名单应用(如京东),则可以直接拉起我们的应用。如果安装了对应的白名单应用,系统会弹出选择框让用户选择使用哪个应用打开。利用Intent优先级 当用户点击“右上角用浏览器打开”时,微信或微博会调用shouldOverrideUrlLoading方法,并尝试使用Intent打开链接。我们可以给自己的应用

突破Android微信微博浏览器限制直接拉起应用
首先,可以尝试伪装成白名单协议,比如将应用名设为京东的协议名称,这样即使用户未安装京东,也能直接拉起应用。如果用户手机中已安装京东,则会弹出选择界面,让用户决定使用哪个应用。这种方法虽然有些“猥琐”,但能解决部分问题。

如何关闭微博的跳转第三方应用功能?
在设备设置中,可以通过前往“设置”-“通用”-“处理器”-“允许应用请求跟踪”来关闭相关应用的跟踪请求。在Android设备中,可以前往“设置”-“应用”-“应用管理”,选择相关应用,然后关闭其“打开其他应用”的权限。

黑科技:微信默认浏览器直接下载 APK
一种常见的方法是使用微信的JS-SDK或者小程序的相关接口来实现跳转。但是,由于微信对外部链接的严格限制,直接通过JS-SDK或小程序接口跳转到外部浏览器下载页面可能会受到限制。因此,这里介绍一种更通用的方法:创建一个中间页面(例如一个HTML页面),该页面包含一个自动触发的JavaScript脚本,用于检测用户...

完美测试解决App一键唤醒_Deeplink,直达指定页面
二、平台限制与解决方案主流平台限制:微信、微博、QQ浏览器、手机百度等禁止直接使用URL Scheme唤醒App。iOS的Universal Link和Android的App Links是官方推荐的替代方案。解决方案:iOS:使用Universal Link,需配置关联域名(Associated Domains)并在服务器部署验证文件(apple-app-site-association)。优势:无...

[实测有效]Xinstall让微信链接直接跳转到App,省去繁琐步骤!
登录Xinstall控制台:首先,你需要登录Xinstall的官方网站,进入控制台界面。集成Android SDK:在控制台中,为你的App集成Android SDK。这是实现一键拉起功能的基础步骤。复制专属scheme:在“Android集成-Android安装包”栏目下,找到Xinstall自动分配的应用专属scheme,并将其复制下来。配置微下载Applink:登录...

一文搞懂deeplink技术
优点:用户无需在应用和网页之间切换,得到一致的用户体验。App Links(Android)机制:类似于iOS的Universal Link,安卓也可以通过App Links的方案来实现通过一个https协议的URL直接拉起APP。支持版本:仅支持Android 6.0以上的系统。通用URL 机制:通过网页链接,通过浏览器打开。四、Deeplink技术的地址符...

如何阻止微博自动跳转微信小程序
1. 浏览器设置:在浏览器右上角点击设置图标,选择“显示高级设置”,然后在“隐私设置”中找到“内容设置”。在此界面中,找到并禁用“跳转微信小程序”功能。2. 微信设置:在微信中打开“发现”菜单,曾经显示的小程序入口现在已经消失。3. 微信个人设置:首先,在微信中点击“我”以进入个人设置页面...

h5里直接拉起app方法有什么解决方法?
在H5页面中直接拉起app的方法,主要依赖于iOS的universalLink和Android的适配解决方案。对于iOS应用,利用universalLink技术,可在链接中嵌入app的特定内容,实现页面跳转至app内。而Android由于浏览器对scheme的屏蔽,直接调起存在难度。针对此问题,Android通常采用应用宝进行适配,简化调起流程。实现过程具体...

一文解析App推广神器deeplink(深度链接)
通过deeplink技术,开发者可以实现从多个平台(如QQ、微信、微博、短信、浏览器等)到App内指定页的跳转,提高用户体验和流量转化率。三、deeplink的工作原理 在浏览器或者短信中打开App时,如果已安装该App,则直接打开并跳转到指定页面;如果未安装,则引导用户下载。对于Android而言,这里主要涉及到的技术...

相似回答
大家正在搜