如何在 Xamarin.Forms 的 webview 中设置用户代理

2023-12-15

我的程序中使用的页面之一需要 UA 包含字符串“weishao”,我尝试使用下面的 JavaScript 来更改 UA 但它不起作用。

var customUserAgent = 'Mozilla/5.0 (Linux; Android 10; EBG-AN00 Build/HUAWEIEBG-AN00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 weishao(3.2.2.74616)';
            Object.defineProperty(navigator, 'userAgent', {
              value: customUserAgent,
              writable: false
            });

页面的检测器是:

function is_weixin() {
    var href = window.location.href;
    if (href.indexOf("errorPage") != -1){
        return true;
    }
    var ua = navigator.userAgent.toLowerCase();
    var isWeixin = ua.indexOf('micromessenger') != -1;
    var weishao = ua.indexOf('weishao') != -1;
    if (isWeixin){
        return true;
    }else if( weishao) {
        return true;
    }else if(dd.env.platform != "notInDingTalk") {
        return true;
    }else{
        alert("Not allowed!");
        var openid = $("#openid").val();
        if (dkywcommon.isEmpty(openid)) {
            openid = "";
        }
        window.location.href = "/errorPage?openid="+openid;
        return true;
    }
}

xamarin 目前不支持在 webview 上自定义 user-agent,但如果您只是在寻找 xamarin.android 的解决方法,您可以参考下面的代码。

[assembly: ExportRenderer(typeof(WebView), typeof(CustomWebViewRenderer))]
namespace App2.Droid
{
    public class CustomWebViewRenderer : WebViewRenderer
    {
        private readonly Context _context;

        public CustomWebViewRenderer(Context context) : base(context)
        {
            _context = context;
        }

        protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
        {
            base.OnElementChanged(e);

            if (e.NewElement != null)
            {
                Control.SetWebViewClient(GetWebViewClient());
                Control.Settings.UserAgentString = "Custom user agent!";
            }
        }
    }
}

Refer to

https://github.com/xamarin/Xamarin.Forms/issues/8432 .

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Xamarin.Forms 的 webview 中设置用户代理 的相关文章

  • 如何使用 javascript 检测触摸设备浏览器与桌面浏览器?

    使用 userAgent match 检测触摸设备 智能手机和平板电脑 与台式机浏览器并返回布尔变量 例如 isipad 的代码是什么 我需要主要针对 Android 和 Apple 设备进行测试 如果设备浏览器是Android或Apple
  • 如何清除所有WebView存储的信息?

    我有一个 Android 浏览器 我可以选择清除缓存 存储 cookie 等 代码如下所示 webView clearCache true webView clearFormData webView clearHistory webView
  • Xamarin:找不到“libmonodroid.so”模拟器错误

    我已经遇到这个问题几天了 但还没有找到解决方案 我一直在使用Android 7 0 ARM armeabi v7a 我的模拟器的图像 因为它太慢了 我一直在尝试使用Android 7 0 Intel Atom x86 64 with HAX
  • 汉堡菜单棱镜xamarin形式?

    我正在尝试在 Xamarin Forms 中使用 Prism 创建一个应用程序 Xamarin 表单版本 2 3 3 175 棱镜版本 6 2 0 汉堡菜单可以在 Android 中使用 但是当我在 UWP 上运行它时 它不会显示图标 而且
  • 防止 FragmentPagerAdapter 中的 WebView 重新加载?

    我有一个 FragmentPagerAdapter 用于显示大约 6 个选项卡 所有选项卡都从 Web 服务器加载数据 其中一个选项卡包含一个从我的服务器加载图像的 WebView 生成图像的服务器端成本很高 因此我想减少重新加载 WebV
  • 如何使用云打印打印Android活动显示

    我正在尝试将 Google 云打印实现到应用程序中 遵循集成指南 https developers google com cloud print docs android 我试图通过打印 google com 来保持基本 单击我创建的打印按
  • 如何在ListView的TextCell中换行文本?

    如何在ListView的TextCell中换行文本 我尝试设置HasUnevenRows to True但这没有帮助 您不能使用 Xamarin 的 开箱即用 TextCell 功能 但是 您应该能够创建一个 ViewCell 并利用换行模
  • 在 Android webview 中禁用地址栏

    如何从 WebView 中禁用和隐藏地址栏 没有地址栏WebView 如果你认为你有一个WebView 然后您看到一个地址栏 那不是您的WebView 相反 您正在查看浏览器应用程序 最有可能的是 您告诉的 URLWebView加载进行了重
  • xamarin 表单中标签的数据绑定部分

    我在 Xamarin 表单中使用 Label 我必须显示一个文本 它基本上是一个句子 但该字符串的一部分包含我从 api 调用获得的数字 而字符串的其余部分是固定的 我想使用数据绑定来设置该部分 例子 文字可以是这样的 您肯定可以赢得 0
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 如何在 Xamarin.Forms 项目中使用 .netstandard 中的 WCF 服务?

    我创建了一个 Xamarin Forms 项目 其中 netstandard 2 0 作为 PCL 项目 我正在尝试在该项目中使用 WCF 服务 我已经为 WCF 服务添加了连接服务 当我尝试调用服务中提供的任何方法时 它会给出如下错误 S
  • 在 Android webview 中访问相机功能?

    我正在构建一个 Native Android WebView App 其代码托管在远程服务器上 使用 HTML 和 Javascript Web App 具有通过 HTML 表单启动手机摄像头的功能 输入请求
  • 是什么导致 Xamarin Forms 构建上出现“无法识别的选择器发送到类”错误?

    首先是关于我的系统的一些事情 Mac 操作系统版本 10 13 6 Xcode 版本 10 Visual Studio for Mac 7 6 6 我对 Xamarin 表单完全陌生 想要尝试和学习 我想做的只是创建一个新的 xamarin
  • Webview 在低于 4.0 的 Android 版本上无法正确加载页面

    我试图在 Webview 中显示结果网页 但在低于 4 0 的 Android 版本上得到了奇怪的结果 我有一个打印屏幕 其中有什么区别 它在 4 0 以上的版本上可以正确显示 并且在我的 Galaxy S2 上运行良好 但在 2 部运行
  • 在 Android Webview 上选择文本转速度的语言

    我已经搜索了很多小时但没有真正的答案 是否可以为文本转语音功能选择与默认语言不同的语言 此代码在 PC 上的 chrome 上完美运行 但在 Android 浏览器上不起作用 function if speechSynthesis in w
  • Android 应用程序中最用户友好的布局选项

    所以我面临的问题不是主观判断什么对用户最好 我认为 而是有哪些选项可以用来说明定位 Think of some sort of team sports app where you can put little dots for player
  • Resource.Designer.cs:“资源...不包含...的定义”

    今天我更新了 Android 版本的 NuGet 包 我们目前正在为 Android 和 iOS 开发 更新后我无法再构建 Android 版本 这是我每次更新包后都会遇到的问题 但这次我无法解决这个问题 通常重新启动 Xamarin 或重
  • Xamarin.Forms 中的 SignalR

    我正在尝试为 SignalR 创建 Xamarin Forms PCL 客户端 我发现的每个教程都是如何将 SignalR 添加到 Xamarin Android 或 Xamarin iOS 如何将 SignalR 添加到 Xamarin
  • Android SDK WebView调用Activity

    我试图在单击 WebView 组件内的链接时启动活动 我的Webview已加载到里面Main java我想启动SubActivity java当点击网站内的链接时Main java 另外 如何将参数传递给此活动 Example inspec
  • 如何在Center中设置WebView内容?

    我正在 WebView 中加载一些 HTML 内容 但它总是出现在我的 WebView 的左上角 我也尝试使用样式表 在样式表中我添加了与中心相关的标签 但它没有位于中心 样式表中的其他标签工作正常 如何设置WebView中的内容垂直和水平

随机推荐

  • 为什么简单的 JavaScript 代码无法运行?

    为什么简单的 JavaScript 代码无法运行 a href click me a 加载文档后分配您的 onclick 处理程序
  • EhCache Hibernate 二级缓存 maxBytesLocalHeap 慢

    我在 Spring 驱动的应用程序中使用 Hibernate 4 2 15 Final 和 EhCache 2 6 9 作为二级缓存 有一个非常标准的持久层设置 一切都按预期进行 然而 将条目放入二级缓存有时需要很长时间 我已经以显式方式配
  • 对列表列表求和[重复]

    这个问题在这里已经有答案了 我在 Python 3 6 中发现了一件奇怪的事情 以下代码返回 类型错误 不支持的操作数类型 int 和 list arr 1 2 3 4 5 print sum i for i in arr 为什么会发生这种
  • 如何使用同位素和砌体布局来避免间隙[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如何修复因元素滑动到下一行而造成的间隙 如下图所示 我正在使用同位素和砖石布局模式 谢谢 我有一个类似的问题 我将通过预先计算元素的顺序来 修复 这个问题 这样就不会有空格 并且框将
  • Detectron2 - 在目标检测的阈值处提取区域特征

    我正在尝试使用以下方法提取类别检测高于某个阈值的区域特征探测器2框架 我稍后将在我的管道中使用这些功能 类似于 VilBert第 3 1 节训练 ViLBERT 到目前为止 我已经用这个训练了 Mask R CNNconfig并根据一些自定
  • 在 Java 绑定中循环遍历 OpenCV Mat

    我正在尝试将 C 方法从之前的回答我收到使用 OpenCV 到 Java 使用 OpenCV Java 绑定 C 代码 cv Mat gray cv Mat element cv getStructuringElement cv MORPH
  • 如何为sql server配置hibernate配置文件

    这是 MySQL 的配置文件
  • Android使用Loader的联系电话号码无效的列数据1

    我以前曾经使用内容解析器来获取联系人列表及其详细信息 虽然它仍然有效 但我想尝试在后台查询内容提供程序的加载器方法 我在这里查看了文档和示例代码 http developer android com training contacts pr
  • Matlab:如何在没有Tab的情况下激活自动完成?

    From 如何在 MATLAB 编辑器中启用自动单词完成功能 我知道我们可以按 Tab 来要求自动完成 然而 这有点乏味 在像 ruby mine 这样的 IDE 中 不需要要求自动完成 建议会自动跳出来 这适用于移动设备 http www
  • 无法运行模拟器

    我已经有一段时间没有编码了 所以我启动了 Eclipse 更新了插件和 Eclipse 现在当我尝试启动模拟器时出现异常 Exception in thread AWT EventQueue 0 java lang VerifyError
  • Xcode 机器人安装链接请求超时

    I have been able to get my Xcode bot to integrate successfully and create a ipa file I have an ssl certificate installed
  • 在Python中将不同大小的列表写入列中的csv

    我需要将长度不同的列表写入列中的 CSV 文件 我目前有 d lists writer csv writer fl for values in zip d writer writerow values 这只有效 我怀疑正在发生的事情是它停止
  • 从构建中排除包,但不从 Netbeans 8 的视图中排除包?

    如何从构建过程中排除特定的包 例如 com domain various 以便它不会出现在最终的 jar 文件中 我已经尝试过以下方式 右键单击项目 gt 项目属性 在树中选择 来源 单击 包括 排除 gt 添加排除模式 但这也隐藏了 Ne
  • 我们如何从 PHP 将指数格式转换为实际数字

    我们如何转换8 64E 14转化为 PHP 的实际值 如果还不是浮动体 则转换为浮动体 并且printf 结果 printf 0f float 8 64E 14 请注意 转换为 int 不起作用 因为该转换无法理解以科学记数法表示为字符串的
  • 在android中使用freemarker库

    我正在尝试在我的项目中使用 freemarker 库 但在初始化配置对象时遇到错误 我进一步调查了这个问题 我发现this关联 我尝试应用上面链接中给出的补丁 但无法成功应用 有人在 Android 中使用过 Freemarker 吗 请帮
  • 使用 POCO 上传文件 - SSL 连接意外关闭异常

    使用 POCO 将文件上传到 HTTPS url HTTP POST 请求始终返回 SSL 连接意外关闭 异常 下面是我用于文件分段上传的代码 try Poco URI uri uploadLink const Poco Net Conte
  • JavaDB 出现端口连接错误。

    我是第一次使用 JavaDB 但在运行程序时遇到问题 每当我运行它时 我都会收到此错误 连接到端口 1527 上的服务器本地主机时出错 并显示消息连接被拒绝 连接 我的数据库和代码都设置得很好 因为当我在别人的计算机上运行它时它工作正常 但
  • SASS 创建函数来执行最大和最小边距

    我找不到这个问题的解决方案 我需要在 SASS 中设置一个边距 最大值介于 2 个值之间 一个是calc 另一个是常规的 px 值 它会是这样的 calculation calc 15vw 10px cssClass margin righ
  • 将数据框字符串列拆分为多列

    我想获取表单的数据 before data frame attr c 1 30 4 6 type c foo and bar foo and bar 2 attr type 1 1 foo and bar 2 30 foo and bar
  • 如何在 Xamarin.Forms 的 webview 中设置用户代理

    我的程序中使用的页面之一需要 UA 包含字符串 weishao 我尝试使用下面的 JavaScript 来更改 UA 但它不起作用 var customUserAgent Mozilla 5 0 Linux Android 10 EBG A