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

如何从webview中的外部url重定向到Android ExtendedWebViewClient (Xamarin +Javascript)中的本地应用文件?

要实现从webview中的外部url重定向到Android ExtendedWebViewClient中的本地应用文件,可以按照以下步骤进行操作:

  1. 首先,需要创建一个自定义的WebViewClient类,继承自ExtendedWebViewClient,并重写shouldOverrideUrlLoading方法。在该方法中,判断url是否为外部url,如果是,则进行重定向到本地应用文件的操作。
代码语言:txt
复制
public class CustomWebViewClient extends ExtendedWebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (isExternalUrl(url)) {
            // 重定向到本地应用文件
            redirectToFile(view, url);
            return true;
        }
        return super.shouldOverrideUrlLoading(view, url);
    }

    private boolean isExternalUrl(String url) {
        // 判断url是否为外部url,根据具体需求进行判断逻辑的实现
        // 返回true表示是外部url,需要重定向到本地应用文件
        // 返回false表示不是外部url,继续加载url
    }

    private void redirectToFile(WebView view, String url) {
        // 重定向到本地应用文件的操作
        // 根据url获取本地应用文件的路径
        // 使用view.loadUrl方法加载本地应用文件
    }
}
  1. 在Activity或Fragment中,创建WebView实例,并设置自定义的WebViewClient。
代码语言:txt
复制
WebView webView = findViewById(R.id.webView);
webView.setWebViewClient(new CustomWebViewClient());

通过以上步骤,当webview加载的url为外部url时,会触发自定义的WebViewClient中的shouldOverrideUrlLoading方法,然后根据判断结果进行重定向到本地应用文件的操作。

注意:以上代码示例为Java语言,如果使用Xamarin开发,需要将代码转换为相应的C#语言。另外,具体的重定向逻辑和本地应用文件的路径获取方法需要根据实际需求进行实现。

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

相关·内容

笔记 | Xamarin

引言 文件读写 参考: 使用 Xamarin.Android外部存储进行文件访问 - Xamarin | Microsoft Docs Xamarin 文件系统访问 - Xamarin | Microsoft...Docs 关于xamarin.forms Android创建文件与写文件 (ftp) - 懒猫口米 - 博客园 外部读写 应用可以在外部存储上保留两种不同类型文件: 专用 文件 – 专用文件是特定于应用程序文件...Android 期望专用文件存储在外部存储上特定目录。 尽管这些文件称为“专用”,但它们仍然可见,并且可由设备上其他应用访问,Android 并没有对它们提供任何特殊保护。...(path); 外部存储权限 所有 Android 应用都必须在 AndroidManifest.xml 外部存储声明两个权限之一。...应用Xamarin.Android 提供默认 ProGuard 配置文件足以删除所有(仅)未使用代码。

23.9K20

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

WPF不能运行在其他操作系统,并且在XAML编写样式表,通用性还是不如HTML强,学习应用范围来讲,还是HTML更好一些。...具体包括  Web App层是开发人员编写代码主要地方,应用程序以网页形式呈现,在一个index.html本地页面文件引用所需要各种Web资源,如CSS、JavaScript、图像、影音文件等...应用程序配置保存在config.xml文件。...例如,在Android平台是通过WebView控件实现web页面的呈现。 Plugins主要用于在JavaScript代码调用各平台native功能。...JS和Native是如何实现互调,这里先研究安卓 Cordova-Android是通过addJavascriptInterface(Android WebviewAPI)和JS Prompt这两种方式来实现

14.4K30
  • Carson带你学Android:你不知道 WebView 使用漏洞

    加载页面前加载一段本地 JS 代码,原理是: 让JS调用一Javascript方法:该方法是通过调用prompt()把JS信息(含特定标识,方法名称等)传递Android端; 在Android...file 协议 url,从而可以获取 B 应用内部私有文件,从而带来数据泄露威胁 具体:当其他应用启动此 Activity 时, intent data 直接被当作 url 来加载(假定传进来... javascript 读取其它本地文件。...仍然有方法访问其他本地文件:符号链接跨源攻击 前提是允许 file URL 执行 javascript,即webView.getSettings().setJavaScriptEnabled(true...例:应用实现了下载功能,对于无法加载页面,会自动下载到 sd 卡;由于 sd 卡文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用私有文件,然后用此 URL 启动被攻击应用

    1.2K10

    Android:你不知道 WebView 使用漏洞

    WebView 加载页面前加载一段本地 JS 代码,原理是: 让JS调用一Javascript方法:该方法是通过调用prompt()把JS信息(含特定标识,方法名称等)传递Android端;...file 协议 url,从而可以获取 B 应用内部私有文件,从而带来数据泄露威胁 具体:当其他应用启动此 Activity 时, intent data 直接被当作 url 来加载(假定传进来...解决方案:设置setAllowFileAccessFromFileURLs(false); 当设置成为 false 时,上述JS攻击代码执行会导致错误,表示浏览器禁止 file url javascript...仍然有方法访问其他本地文件:符号链接跨源攻击 前提是允许 file URL 执行 javascript,即webView.getSettings().setJavaScriptEnabled(true...例:应用实现了下载功能,对于无法加载页面,会自动下载到 sd 卡;由于 sd 卡文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用私有文件,然后用此 URL 启动被攻击应用

    3.2K20

    WebView深度学习(三)之WebView内存泄漏、漏洞以及缓存机制原理和解决方案

    WebView 加载页面前加载一段本地 JS 代码,原理是: 1) 让JS调用一Javascript方法:该方法是通过调用prompt()把JS信息(含特定标识,方法名称等)传递Android...B 应用内部私有文件,从而带来数据泄露威胁 具体:当其他应用启动此 Activity 时, intent data 直接被当作 url 来加载(假定传进来 url 为 file:///...,表示浏览器禁止 file url JavaScript 读取其它本地文件。...()都设置为 false,通过 file URL 加载 javascript仍然有方法访问其他本地文件:符号链接跨源攻击(前提是允许 file URL 执行 javascript,即webView.getSettings...例:应用实现了下载功能,对于无法加载页面,会自动下载到 sd 卡;由于 sd 卡文件所有应用都可以访问,于是可以通过构造一个 file URL 指向被攻击应用私有文件,然后用此 URL 启动被攻击应用

    2.8K10

    HybridReact-Native: JS在移动端南征北战史

    我们前端角度看啊,是这样子滴~ :在Android啊,有个叫做WebView控件,这个控件作用是可以在里面放一个网页然后运行它!...几种常见hybrid通信方式 2)JSbridge 我们前端角度看啊,其实是这样子滴~:就是在Android啊,有这么一个WebChromeClient组件,它就是上面讲到WebView控件一个子类...,它有个shouldOverrideUrlLoading这个方法,这个方法可以把控件内部网页JSUrl请求给拦截了,当然了,你写在Url数据也同时被一并获取了。...不是WebView,和Cordova等Hybrid方案划清界限 不将JavaScript预编译为Native代码,和Xamarin等方案划清界限。...Shadow线程进行计算,并最终将计算结果得到布局参数传递给主线程(UI线程),实现UI构建 RNBridge做了什么? && RN线程如何交互?

    3.3K10

    AndroidWebview 如何相互 sayHello(一)

    本篇为第一篇:Androidwebview 交互 后续一篇是:IOS 和 webview 交互 如需获得最新内容,可以关注微信公众号:前端小吉米 在移动时代 Web 开发方式逐渐 PC...android 两种调用 H5 方式 javascript 调用 android 方式对比 jsbridge.js 文件起源 android 如何 inject JS 文件 客户端对于 webview...android 调用 js 我们深入 API 层面来看一下,他们之间是如何相互进行调用android => js: 方法只有两个非常简单 使用 loadUrl("javascript:window.jsbridge_visibilityChange...下面我们来简单介绍一下,客户端如何做到直接侵入 webview 加载 jsbridge.js 文件。...webview 重定向解决办法 现在最关键如何判断当前打开 webview 是有效果

    1.8K30

    Android Deep Link 攻击面

    目录结构Deep Link介绍概念应用场景提取并调用APPDeep Link方法一:AndroidManifest中提取方法二:使用MobSF方法三:使用Frida方法四:网页调用攻击面分析URL...应用场景**一键跳转:** 在应用内部或应用外部直接跳转到指定页面或执行特定操作功能。...(模拟真实攻击环境)">Click但是调用前,我们还需要拿到对应路由和参数,跟踪对应组件,分析如何构造,详见下方举例。...分析如图:如果路由是/web,则会进入else参数url取值给data通过webview加载data图片所以利用调用命令如下:adb shell am start -W -a android.intent.action.VIEW...分析如图:路由不是/web但路由是/webview参数url取值给queryParameter判断queryParameter是否以insecureshopapp.com结尾的如果是,就把url值赋值给

    1.7K100

    移动开发下Xamarin VS PhoneGap

    幸运是,有很多公司已经在研究如何使原生APP开发变得简单,目前为止多平台开发方法主要有两种:第一种方法就是以Web 应用为内核,填充到原生app(PhoneGap提供解决方案)。...,但是无论是PhoeGap或是Xamarin没有绝对好与坏,因此如何选择,主要取决于哪种工具能够更有利于企业。...这些应用程序称为混合应用,既不是原生(在WebView渲染)也不是纯Web应用(需要访问原生设备API,是安装包形式)可使用其他插件扩展PhoneGap 功能。...Xamarin VS PhoneGap Xamarin.Forms PhoneGap 使用C#或XAML语言编码 使用 JavaScript,HTML,CSS 编码 开发iOS ,Android,WindowsPhone...Xamarin -- 借助 Xuni (本地化、跨平台移动控件集),使用本地编程技术,可以在 IOS、AndroidXamarin平台上使用相同 API。

    3.4K80

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

    通常情况下,App 内部会使用 WebView 控件作为网页引擎。这是系统自带控件,专门用来显示网页。应用程序界面,只要放上 WebView,就好像内嵌了浏览器窗口,可以显示网页。 ?...混合技术栈:页面本身就是网页,默认在 WebView 显示。 跨平台技术栈:提供一个 WebView 语法,编译时候将其换成原生 WebView。...如果一切正常,就可以让 Android Studio 打包,生成 App 二进制安装文件。 四、混合技术栈 上面的原生技术栈需要自己新建 WebView 实例,相比之下,混合技术栈就简单多了。...它们优点是开发简单、周期短、成本低,缺点是功能和性能都很有限。 4.2 Ionic 实例 基于 Cordova 框架,用法都大同小异,下面就以 Ionic 为例,演示如何加载外部网页。...上面代码,由于页面本身就是网页,所以可以直接用iframe标签插入外部网页。 然后,在本机起一个 Web 服务,看看 Demo 效果。

    6.7K41

    混合开发之WebView秘笈

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View属性和设置外,还可以对url请求...与Js交互 这里我会介绍两种交互方式 url拦截 java与js交互 Url拦截 可以通过WebViewClientshouldOverrideUrlLoading()方法拦截url,判断url进行相应处理...传参:可以将需要参数直接拼接在url,在使用时url获取 不足:url拦截会有一定顺序,拦截会“交差” 将参数直接拼接在url,不安全 参数只能是字符串类型...除了HTML主URL自身请求外,HTML外部引用 JS、CSS、字体文件、图片都是一个个独立HTTP 请求,虽然请求是并发,但当网页整体数量达到一定程度时候,再加上浏览器解析、渲染时间,Web...具体实现思路为: “存”——将上述重量级资源打包进apk文件,每次加载相应文件时时本地取即可。

    2K30

    安卓应用安全指南 4.9 使用`WebView`

    以下示例代码展示了,如何使用WebView显示存储在assets/和res/下内容。 要点: 1) 禁止访问文件(apk 文件assets/和res/下文件除外)。...另外,如果内容存储在外部存储介质,如 microSD,则必须禁用 JavaScript;因为其他应用可以修改内容。...4.9.2.3 禁用 JavaScript 来显示通过意图接收 URL(必需) 如果你应用需要显示其他应用,以意图等形式传递 URL,则不要启用 JavaScript。...如果你需要显示意图收到 URL,则必须确认该 URL 在内部管理 URL 。 简而言之,应用必须使用正则表达式等白名单来检查 URL。另外,它应该是 HTTPS。...4.9.3.2 由文件模式导致问题 如果使用默认设置WebView应用具有访问权限所有文件,都可以通过在网页通过文件模式访问,而无论页面的来源如何

    1K10

    Carson带你学Android:最全面的Webview使用详解

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View属性和设置外,还可以对url请求...); //这个api仅仅清除自动完成填充表单数据,并不会清除WebView存储本地数据 Webview.clearFormData(); 3.2 常用类 3.2.1 WebSettings类 作用...= webView.getSettings(); //如果访问页面要与Javascript交互,则webview必须设置支持Javascript webSettings.setJavaScriptEnabled...App里面使用webview控件时候遇到了诸如404这类错误时候,若也显示浏览器里面的那种错误提示页面就显得很丑陋了,那么这个时候我们app就需要加载一个本地错误提示页面,即webview如何加载一个本地页面...//步骤1:写一个html文件(error_handle.html),用于出错时展示给用户看提示页面 //步骤2:将该html文件放置代码根目录assets文件夹下 //步骤3:复写WebViewClient

    1.6K40

    基于腾讯x5开源库,提高60%开发效率

    加载office资源 关于加载word,pdf,xls等文档文件注意事项:Tbs不支持加载网络文件,需要先把文件下载到本地,然后再加载出来 还有一点要注意,在onDestroy方法调用此方法mTbsReaderView.onStop...load_url=http://www.doubi.com。这个时候点击进去即可进入钓鱼链接地址。 使用建议 APP任何接收外部输入数据地方都是潜在攻击点,过滤检查来自网页参数。...恶意应用也可以注册相同URL Sechme来截取这些敏感信息。Android系统会让用户选择使用哪个应用打开链接,但是如果用户不注意,就会使用恶意应用打开,导致敏感信息泄露或者其他风险。...html代码下载到WebView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,会异步发起网络请求下载文件,但如果在这之前也有解析image节点,那势必也会发起网络请求下载相应图片...5.0.8 如何设置白名单操作 客户端内WebView都是可以通过客户端某个schema打开,而要打开页面的URL很多都并不写在客户端内,而是可以由URL参数传递过去

    3.5K30

    这是一份Android全面&详细-Webview使用攻略

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View属性和设置外,还可以对url请求...); //这个api仅仅清除自动完成填充表单数据,并不会清除WebView存储本地数据 Webview.clearFormData(); 3.2 常用类 3.2.1 WebSettings类 作用...App里面使用webview控件时候遇到了诸如404这类错误时候,若也显示浏览器里面的那种错误提示页面就显得很丑陋了,那么这个时候我们app就需要加载一个本地错误提示页面,即webview如何加载一个本地页面...//步骤1:写一个html文件(error_handle.html),用于出错时展示给用户看提示页面 //步骤2:将该html文件放置代码根目录assets文件夹下 //步骤3:复写WebViewClient...与JavaScript交互 3.4 注意事项:如何避免WebView内存泄露?

    4.2K20

    Android:最全面的 Webview 详解

    作用 显示和渲染Web页面 直接使用html文件(网络上或本地assets)作布局 可和JavaScript交互调用 WebView控件功能强大,除了具有一般View属性和设置外,还可以对url请求...); //这个api仅仅清除自动完成填充表单数据,并不会清除WebView存储本地数据 Webview.clearFormData(); 3.2 常用类 3.2.1 WebSettings类 作用...= webView.getSettings(); //如果访问页面要与Javascript交互,则webview必须设置支持Javascript webSettings.setJavaScriptEnabled...App里面使用webview控件时候遇到了诸如404这类错误时候,若也显示浏览器里面的那种错误提示页面就显得很丑陋了,那么这个时候我们app就需要加载一个本地错误提示页面,即webview如何加载一个本地页面...//步骤1:写一个html文件(error_handle.html),用于出错时展示给用户看提示页面 //步骤2:将该html文件放置代码根目录assets文件夹下 //步骤3:复写WebViewClient

    3.5K20

    WebView深度学习(一)之WebView基本使用以及Android和js交互

    WebView控件功能强大,除了具有一般View属性和设置外,还可以对url请求、页面加载(直接使用html文件(网络上或本地assets)作布局)、渲染Wb页面、页面交互(和js交互)进行强大处理...); //这个api仅仅清除自动完成填充表单数据,并不会清除WebView存储本地数据 Webview.clearFormData(); (二)常用类 (1) WebSettings类(主要作用是...//LOAD_NO_CACHE: 不使用缓存,只网络获取数据. //LOAD_CACHE_ELSE_NETWORK,只要本地有,无论是否过期,或者no-cache,都使用缓存数据。...1.在JS约定所需要Url协议 这里示例用本地html代码,放到src/main/assets文件夹里,文件名为javascript.html。开发中肯定是服务器获取对应资源。 <!...3.步骤1:加载JS代码,这里示例用本地html代码,放到src/main/assets文件夹里,文件名为javascript.html。开发中肯定是服务器获取对应资源。 <!

    6K31
    领券