解决onelink短链被应用市场劫持的问题
解决onelink短链被应用市场拦截的问题
问题
1.Onelink是啥就不说了,你可以去问谷歌
2.需求
问题:国内应用市场自带浏览器会识别onelink短链,跳转到自家应用市场
不跳转手机自带的应用市场,我想跳转到手机上安装的GooglePlay,怎么办?
一般 onelink 地址:https://go.onelink.me/app/…
到了浏览器中会重定向:market://details?id=包名&…
解决方法
1.创建一个webview 控件,调用loadUrl方法
2.创建内部类继承WebViewClient,覆写shouldOverrideUrlLoading
// 针对国内地址被拦截的问题
url?.let {if(it.contains("market://")){val startIndex = it.indexOf("=")val endIndex = it.indexOf("&")if(startIndex+1 < endIndex){// 处理一:统一规则,最后到onPageFinished方法中处理val packageName = it.substring(startIndex+1,endIndex)val newUrl = "https://play.google.com/store/apps/details?id=$packageName"view?.loadUrl(newUrl)// 处理二:直接处理,直接跳转return true}}
}
return super.shouldOverrideUrlLoading(view, url)
3.覆盖 onPageFinished 方法,创建自己的跳转规则
var isFirstLoad = true
if (view.url.contains("play.google.com") && view.url.contains("?id=") && isFirstLoad) {isFirstLoad = false// 跳转到应用市场
}else{// 跳转浏览器下载
}
4.跳转到应用市场
fun startMarket(activity: Activity, url: String?) {val GOOGLE_PLAY = "com.android.vending"try {if ("" == url) returnval packageName = url!!.split("?id=")[1]//这里开始执行一个应用市场跳转逻辑,默认this为Context上下文对象val uri = Uri.parse("market://details?id=${packageName}")val intent = Intent(Intent.ACTION_VIEW, uri)//跳转到应用市场,非Google Play市场一般情况也实现了这个接口//存在手机里没安装应用市场的情况,跳转会包异常,做一个接收判断if (intent.resolveActivity(activity.packageManager) != null) { //可以接收if (!TextUtils.isEmpty(packageName)) {intent.setPackage(GOOGLE_PLAY)intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)activity.startActivity(intent)}} else { //没有应用市场,我们通过浏览器跳转到Google Playintent.data = Uri.parse(url)//这里存在一个极端情况就是有些用户浏览器也没有,再判断一次if (intent.resolveActivity(activity!!.packageManager) != null) { //有浏览器activity.startActivity(intent)} else {Toast.makeText(activity,"You don't have an app market installed, not even a browser!",Toast.LENGTH_SHORT).show()}}} catch (e: Exception) {// 跳转失败了}
}
5.跳转浏览器下载
private fun toDownLoad(url : String) {try {val intent = Intent()intent.action = "android.intent.action.VIEW"intent.data = Uri.parse(url)intent.addCategory(Intent.CATEGORY_BROWSABLE)startActivity(intent)} catch (e: Exception) {e.printStackTrace()}
}
解决onelink短链被应用市场劫持的问题相关推荐
- 解决安卓微信video标签标签劫持
解决安卓微信video标签标签劫持 需求 期望网页中的video标签,不在安卓微信中被劫持播放. 代码 可能视频地址失效,换个视频地址,再测试. <!DOCTYPE html> <h ...
- dns劫持解决方法有哪些、dns劫持什么意思
一.dns劫持是什么 1.dns劫持的定义 Dns在这里是Domain Name Server的缩写,就是域名系统的意思,dns劫持就是指我们在使用电脑上网的时候,可以有效的阻止的域名解析请求,然后进 ...
- 「镁客·请讲」禾赛科技李一帆:定位激光雷达整体方案解决商,填补国内市场空白...
目前来看,近五年内机械式激光雷达还将会是主流产品,这也是禾赛科技的主攻方向. 对于Level 3级别的辅助自动驾驶和Level 4级别的无人驾驶而言,激光雷达可以说有着不可替代的作用.之所以这样说,是 ...
- 如何解决Chrome首页被流氓网站劫持的问题
最近新下了Chrome,发现每一次打开时都会有流氓网站劫持了首页,并且修改设置里的主页.高级里的启动时都没有用.这里记录一下我的解决方法,供大家参考 Chrome快捷方式可能被篡改 在Chrome地址 ...
- 流量劫持怎么解决方法有那些、流量劫持手法有那些
流量圈的故事很多,劫持与反劫持的故事在很长时间内将继续演绎下去.对于老老实实做人,认认真真做站的朋友来说,好不容易做出了一点成绩,一劫持就又回到解放前了,那么你的流量都被劫持到哪里去了?常见的劫持方法 ...
- 解决chrome浏览器us-yahoo.com搜索劫持
一直用着greenchrome浏览器,结果有次之后,地址栏的默认搜索引擎用的bing,但是仍然会重定向到us-yahoo.com进行搜索,初起时以为是greenchrome插件作者的返利,类似2345 ...
- 解决Chrome浏览器主页被篡改(劫持)hh899899.com的问题
问题描述: · Chrome浏览器主页被篡改(劫持)hh899899.com: · 桌面快捷方式属性目标栏没有后缀网页地址,但是chrome://version下可以看到: · 使用了多种办法都不管用 ...
- 解决Chrome浏览器启动页被劫持篡改为360
方法: 打开Chrome所在文件位置,找到chrome.exe,直接重命名这个exe,创建快捷方式到桌面就OK 原理: 这个劫持一般根据chrome.exe这个名字来的,直接改名字,比如改成,chro ...
- 解决www 54kk com/baidu劫持浏览器的问题
endurer 原创 2005.10.27第一版 *endurer注:为了安全起见,下文中的"http://"均用"hxxp://"代替. 刚才一位同事的电脑中 ...
最新文章
- 日本推出透明公厕,智能玻璃控制透明度,有人如厕就“屏蔽”外界
- 白平衡——图像处理中的一种增强技术
- 超链接浏览meta name=format-detection/ 的用法
- (0082)iOS开发之搭建iOS自动化打包平台(利用Jenkins持续集成iOS项目)
- python 调用linux命令-四种执行python系统命令的方法
- java valueof的用法_Java SignStyle valueOf()用法及代码示例
- 字符设备驱动基本流程
- 机器学习(一)梯度下降算法
- 为什么我共享的文件别人看不到_【零基础学云计算】解析文件共享及访问方式...
- 深度解密Go语言之pprof
- NET主流ORM框架分析
- [css] 你有使用过css的writing-mode属性吗?说说它有哪些应用场景?
- 深入理解 Objective-C:方法缓存
- 当大数据遇上“智慧园区”会怎样?
- 排序——冒泡排序算法
- scipy模块_misc模块,imread,imresize, imsave / imshow/ imrotate
- 瀑布式项目管理软件测评!
- Faulty Robot-(dfs或者dijkstra)
- 武汉大学研究生慕课《学术道德与学术规范》——考试题目总结
- python pdf书籍领取
热门文章
- MediaPlayer( 媒体播放器),TelephonyManager(电话管理类),MediaRecorder(媒体录音机)
- 和ts一般怎么玩_攻略|梦幻西游手游:金币小号怎么玩?高手一般都这么弄
- 【题解】codeforces765F Souvenirs
- Git与GitHub说明分析
- 细胞穿膜肽IAWVKAFIRKLRKGPLG
- 深富策略:周期股反弹有限 新能源是主基调
- stm32实现按键控制三色灯(stm32cubeIDE)
- 批处理使用问题处理(逐步添加)
- 计算机网络谢希仁版(第七版)答案
- 【翻译】四种类型的为什么:产品背后的驱动力是什么?