首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果"target=_blank“,Xamarin安卓WebView不会触发导航

"target=_blank" 是 HTML 中的一个属性,用于指定链接在新的浏览器窗口或标签页中打开。而 Xamarin 是一个跨平台的移动应用开发框架,可以使用 C# 编写应用程序,并在多个平台上运行。

在 Xamarin 安卓开发中,如果使用 WebView 控件来显示网页内容,当网页中的链接设置了 "target=_blank" 属性时,点击这些链接时不会触发导航。这是因为默认情况下,WebView 控件不会处理新窗口的请求。

要解决这个问题,可以通过重写 WebViewClient 类的 ShouldOverrideUrlLoading 方法来处理链接的导航。在该方法中,可以判断链接是否包含 "target=_blank" 属性,如果包含,则手动打开一个新的 WebView 来加载链接的内容。

以下是一个示例代码:

代码语言:txt
复制
public class CustomWebViewClient : WebViewClient
{
    public override bool ShouldOverrideUrlLoading(WebView view, string url)
    {
        if (url.Contains("target=_blank"))
        {
            // 创建一个新的 WebView 来加载链接
            WebView newWebView = new WebView(view.Context);
            view.AddView(newWebView);
            newWebView.LoadUrl(url);
            return true;
        }
        else
        {
            // 在当前 WebView 中加载链接
            view.LoadUrl(url);
            return false;
        }
    }
}

然后,在使用 WebView 控件的地方,设置自定义的 WebViewClient:

代码语言:txt
复制
WebView webView = new WebView(this);
webView.SetWebViewClient(new CustomWebViewClient());

这样,当点击包含 "target=_blank" 属性的链接时,会在新的 WebView 中打开链接的内容,而不会影响当前的 WebView。

腾讯云相关产品中,与移动应用开发和 WebView 相关的产品包括:

  1. 移动应用开发平台(https://cloud.tencent.com/product/mapp)
    • 该平台提供了一站式的移动应用开发解决方案,包括开发工具、云服务和运营支持等,可用于快速构建移动应用。
  • 移动推送服务(https://cloud.tencent.com/product/tpns)
    • 该服务提供了高效可靠的消息推送能力,可用于向移动应用的用户发送通知、提醒等消息。

请注意,以上仅为示例产品,实际选择产品时需根据具体需求进行评估和选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

H5 手机 App 开发入门:技术篇

如果你熟悉 Java 语言,可以学习开发;如果熟悉脚本语言(比如 Python 或 Ruby),可以学习 Swift 语言,进行 iOS 开发;如果像我一样,比较熟悉 Web 网页技术,那么 H5...注意,不同系统的 WebView 控件名称不一样,系统就叫 WebView,iOS 系统有较老的 UIWebView,也有较新的 WKWebView,作用都是一样的,差异在于功能的强弱。...如果一切正常,就可以让 Xcode 对源码打包,生成 App 的二进制安装文件。 3.2 Android Studio 的官方开发工具是 Android Studio,可以去官网下载。 ?...上面代码中,React Native 自身的WebView控件,编译时会分别转为 iOS 和的原生 WebView 控件。 接下来,预览页面效果。...如果你想用 React Native 做到 iOS 和体验一致,并且充分发挥原生控件的功能,就需要同时熟悉 React Native、iOS、三个平台,这对开发者的要求实在太高了。

6.6K41

解读Android 12首个开发者预览版

Android 12行为变更:面向所有应用 用户体验升级 沉浸式手势导航改进 从Android 10 开始,Android 系统就已支持手势导航,致力于给用户带来沉浸式的全新体验。...在之前版本的系统下,用户启动的沉浸模式,默认需要的手势操作是:从屏幕侧方滑入,退出沉浸模式,然后再返回上一个界面。...➀ target = 12, 将抛出 SecurityException 异常 ➁ target < 12 ,该 intent 不会执行,会在 logcat 打印警告日志: E ActivityTaskManager...不配置的话,在 12 设备上将不能安装,logcat 也会打印错误日志: Targeting S+ (version 10000 and above) requires that an explicit...也欢迎更多的开发者和我们一起交流和探索Android及移动开发新技术,共同建设更好的开发生态。 *本文图片来源于Android官网

1.8K30

视频H5 video最佳实践

换句话说,如果APP不设置,你页面中加了这标签也无效,这也就是为什么手机WeChat 播放视频总是全屏,因为APP不支持playsinline,而ISO的WeChat却支持。...这里就要补充下,如果是想做全屏直播或者全屏H5体验的用户,IOS需要设置删除 webkit-playsinline 标签,因为你设置 false 是不支持的 ,则不需要,因为默认全屏。...至于为什么同层播放只对开放,是因为不能像ISO一样局域播放,默认的全屏会使得一些界面操作被阻拦,如果是全屏H5还好,但是做直播的话,诸如弹幕那样的功能就无法实现了,所以这时候同层播放的概念就解决了这个问题...微信浏览器是X5内核,一些属性标签比如playsinline就不支持,所以始终全屏。...ended,timeupdate以外event事件,在不同的机子上可能有不同的情况产生,例如:ios下监听canplay和canplaythrough(是否已缓冲了足够的数据可以流畅播放),当加载时是不会触发

4.2K30

客户端软件GUI开发技术漫谈:原生与跨平台解决方案分析

现在大多数程序员都是基于C#、Java进行开发,如果不是Apple死忠,根部不会花大力气研究 跨平台软件应用开发 直接元素开发肯定是最好的——这样的性能肯定最有保证,但是跨平台的主要优势在于代码逻辑的复用...、plugin信息、图标资源信息 WebView层用来呈现用户界面,即web页面的展现。...例如,在Android平台是通过WebView控件实现web页面的呈现。 Plugins主要用于在JavaScript代码中调用各平台native的功能。...JS和Native是如何实现互调的,这里先研究的 Cordova-Android是通过addJavascriptInterface(Android Webview的API)和JS Prompt这两种方式来实现...Xamarin.Android被编译成中间语言,Xamarin在APK安装包中会包含一个mono(跨平台的.NET运行环境),代码是在mono运行时和本地的运行时上完成工作的。

14.3K30

iOS监听H5页面goBack返回事件 & 网页监听APP返回键 (NavigationBackItemInjection)

1.1 UIWebView 监听H5页面goBack返回事件 1.2 WKWebView监听H5页面goBack返回事件 2.1 原理 2.2 例子 什么时候会触发这个返回事件?...截取当前显示在屏幕中的WKWebView UINavigationBarDelegate NavigationType Disable all the '_blank' target in page's.../details/114832679 I 、 iOS监听H5页面goBack返回事件 方式一:通过与JS的桥接,让h5主动通知你的 如果是采用通过与JS的桥接,让h5主动通知你的方案,请看这两篇文章 1...UIWebViewNavigationTypeBackForward 2、canGoBack:判断当前H5界面是否可以返回的方法 3、goBack: 返回上一个界面 4、goForward:可以向前导航到...; } 重写原生导航栏的pop事件处理 根据[self.webView canGoBack]来做处理 -(void)navigationBarItemBackImage{ UIImage *image

5.6K21

移动端H5页面开发坑点指南

step;number中默认step是1,也就是step=0.01可以允许输入2位小数,并且点击上下箭头分别增加0.01和减少0.01;step和min一起使用时数值必须在min和max之间 问题3:部分手机出现样式问题...animation-play-state是最简便的方式,然而ios不支持 目前的解决方案是:音乐图标负责跑动画,图标父级元素负责记录停止时的转动值 ios防止长按页面元素被选中 解决:加入样式可禁止用户进行复制,ios和一般的都可以解决...;如果content设置为default,则状态栏正常显示;如果设置为blank,则状态栏会有一个黑色的背景;如果设置为blank-translucent,则状态栏显示为黑色半透明;如果设置为default...或blank,则页面显示在状态栏的下方,即状态栏占据上方部分;页面占据下方部分,二者没有遮挡对方或被遮挡;如果设置为blank-translucent,则页面会充满屏幕,其中页面顶部会被状态栏遮盖住(会覆盖页面...; //e.target指向事件执行时鼠标所点击区域的那个元素;初学者会认为当前事件所绑定的元素就是鼠标所点击的那个元素,这时就要看看时间绑定的元素内部有没有子元素,如果有e.target指向这个子元素

3K10

基于 Vue 和 TS 的 Web 移动端项目实战心得

下面是两端的关键代码摘要: 端同步日历核心代码,具体代码请查看与本项目配套的项目 mobile-web-best-practice-container[35]: public class JsApi...$platform} 环境,无法调用接口哦` ); }; } return descriptor; }; } 另外推荐一个笔者之前写的一个基于平台实现的教学版...以为例关键代码如下: 关键代码: // Activity -> onCreate ... // 获取 app 版本 PackageManager packageManager = getPackageManager...如果webview 加载网页,也可以通过 webview 加载失败的钩子监控网页崩溃等。 如何监控网页崩溃?...iOS 登陆后立即进入网页,会出现 cookie 获取不到或获取的上一次登陆缓存的 cookie 重启 App 后,cookie 会丢失 input 标签在部分 webview 上无法实现上传图片功能

3.4K21

移动 web 最佳实践(干货长文)

下面是两端的关键代码摘要: 端同步日历核心代码,具体代码请查看与本项目配套的项目 mobile-web-best-practice-container[35]: public class JsApi...$platform} 环境,无法调用接口哦` ); }; } return descriptor; }; } 另外推荐一个笔者之前写的一个基于平台实现的教学版...以为例关键代码如下: 关键代码: // Activity -> onCreate ... // 获取 app 版本 PackageManager packageManager = getPackageManager...如果webview 加载网页,也可以通过 webview 加载失败的钩子监控网页崩溃等。 如何监控网页崩溃?...iOS 登陆后立即进入网页,会出现 cookie 获取不到或获取的上一次登陆缓存的 cookie 重启 App 后,cookie 会丢失 input 标签在部分 webview 上无法实现上传图片功能

2.7K61

移动端那些戳中你痛点的软键盘问题及解决方法

(对于这点,ios本身是支持的,但是却并不会主动让输入框出现在可视区域内) 4、对于部分ios系统下的部分微信webview内,发现软键盘收起时,滚动上去的页面没有滚动下来,造成了下面区域留出了一片灰色的区域...那么,如果将要输入的目标(即「输入框」,例如 input、textarea 或一般的 contenteditable 元素)正好被弹起的键盘遮住,体验不会很糟糕吗?...2、吸底元素(也就是按钮)能够在键盘弹出之后,出现在键盘的上方 对于这个问题,因为表现是webview缩小,所以在上并不存在这个问题,对于ios,因为ios向上滚动的距离最大是键盘的高度,但是也有可能滚动距离不是键盘高度...(对于这点,ios本身是支持的,但是却并不会主动让输入框出现在可视区域内) 这个简单,让元素滚动到可视区内,直接用scrollIntoView(true)方法就好。... ?

7.7K30

移动 Web 最佳实践(干货长文,建议收藏)

下面是两端的关键代码摘要: 端同步日历核心代码,具体代码请查看与本项目配套的项目 mobile-web-best-practice-container[35]: public class JsApi...$platform} 环境,无法调用接口哦` ); }; } return descriptor; }; } 另外推荐一个笔者之前写的一个基于平台实现的教学版...以为例关键代码如下: 关键代码: // Activity -> onCreate ... // 获取 app 版本 PackageManager packageManager = getPackageManager...如果webview 加载网页,也可以通过 webview 加载失败的钩子监控网页崩溃等。 如何监控网页崩溃?...iOS 登陆后立即进入网页,会出现 cookie 获取不到或获取的上一次登陆缓存的 cookie 重启 App 后,cookie 会丢失 input 标签在部分 webview 上无法实现上传图片功能

2.4K10

微信小程序面试题总结

如果如果团队前端强大,自己做一套框架也没问题。 B类问题 一.简单描述下微信小程序的相关文件类型?...小程序功能分为webview和APPservice,webview主要用来展示UI,appservice用来处理业务逻辑、数据及接口调用。...优势: 容易上手,基础组件库比较全,基本上不需要考虑兼容问题; 开发文档比较完善,开发社区比较活跃,支持插件式开发; 良好的用户体验:无需下载,通过搜索和扫一扫就可以打开,打开速度快,上可以添加到桌面...推广面窄,不能分享朋友圈,只能通过分享给朋友,附近小程序推广 依托于微信,无法开发后台管理功能 后台调试麻烦,因为api接口必须https请求且公网地址 真机测试,个别功能和苹果表现迥异,例如的定位功能加载很慢...九.使用webview直接加载要注意哪些事项?

7.9K63

使用 Cordova 构建应用的流程

添加平台支持 添加平台和后续命令都需要在项目的目录或任何子目录中运行, 添加 和 iOS平台 $ cordova platform add ios $ cordova platform add android...cordova-plugin-wechat 一个 cordova 插件,一个微信 SDK 的 JS 版本 cordova-plugin-zip 一个 Cordova 插件解压缩文件在和 iOS。...插件 插件开发指南 本节提供如何在 Android 平台上实现本地插件代码的详细信息。...它在 WebView 导航到新页面或刷新时执行,这会重新加载 JavaScript。...在使用任何插件之前,Cordova 应用程序必须等待备份 / 备份事件触发如果你不使用 SPA,而你的用户点击从一个页面到另一个页面,你必须等待设备再次启动后才能使用插件。

4.2K11

微信小程序性能监控方式

命中环境预加载启动流程​编辑切换为居中添加图片注释,不超过 140 字(可选)1) 资源准备信息获取: 小程序的头像、昵称、版本、配置、权限等基本信息(同步请求、异步请求)运行环境准备: 包括小程序进程、客户端原生部分的系统组件和 UI 元素(如 导航栏...3、官方建议标准ios需要下载或更新时3.7s1.8s使用本地代码包时2.6s0.9s4、性能制约因素平台: 不同平台下(、iOS、PC 等)设备性能、操作系统、框架实现、优化方案存在较大差异,...小程序版本更新:小程序版本更新时,用户需要更新小程序信息和代码包,代码缓存也需要重新生成,启动耗时会出现上涨页面复杂度: 页面的逻辑复杂程度、组件数量、结构复杂度等都会影响5、为什么和 iOS 的启动耗时差异那么大...两个平台的设备性能、系统功能和启动流程实现存在一定差异:iOS 设备的平均性能要好于;iOS 小程序和微信共用进程,而 Android 上小程序运行在独立进程,需要额外的进程创建和一些基础模块的初始化流程...;iOS 上需要使用系统提供的 WebView 和 JavaScript Core,初始化开销几乎可以忽略; UI 和系统组件的创建的开销远高于 iOS。

1.8K20

Android WebView挂马漏洞--各大厂商纷纷落马

一、漏洞描述 近期,微信等多款流行应用曝出高危挂马漏洞:只要点击好友消息或朋友圈中的一条网址,手机就会自动执行黑客指令,出现被安装恶意扣费软件、向好友发送欺诈短信、通讯录和短信被窃取等严重后果。...在乌云漏洞平台上,包括版微信、QQ、腾讯微博、QQ浏览器、快播、百度浏览器、金山浏览器等大批应用均被曝光同类型漏洞。...漏洞触发条件: 1、使用WebView.addJavascriptInterface方法注册可供javascript调用的java对象。...出于安全考虑,为了防止Java层的函数被随便调用,Google在4.2版本之后,规定允许被调用的函数必须以@JavascriptInterface进行注解,所以如果某应用依赖的API Level为17或者以上...,就不会受该问题的影响(注:Android 4.2中API Level小于17的应用也会受影响)。

1K60

《云阅2.0》一款同时看玩和干货集中营资讯的App

(首页、知识体系、导航数据、收藏文章和网址) 糗事百科段子内容 webview 新增分享,复制,刷新,浏览器打开,添加到收藏功能 侧边栏新增 账号登录、我的收藏、退出应用功能 增加Room的使用 2、优化...因为我平时也是用这个软件来看一些技术的动态,随着干货集中营更新的不频繁,玩也越来越完善后,便实现了玩的大部分功能,没有实现的只有少部分接口了,比如TODO,搜索部分,搜索后期也会完善,TODO因为平时自己用奇妙清单觉得很好用...三、2.0 之后的计划 如果应用中使用到的Api(玩、干货集中营和豆瓣开放Api)可以继续使用的话,以后的样式ui基本就是这样子了,期间也会加一些实用的功能,如监控剪切板的内容打开链接等。...我会一直维护这个项目,有什么问题可以随时交流,但今后的重心可能不会于此。...此应用虽然基础的UI是仿网易云音乐界面,但是具体的一些细节,如电影部分和玩的主页面等都是花了很长时间慢慢调试才达到这样相对美观的效果,其中包含文字颜色,图标及一些图片的选择。

87950
领券