如何在 MFP 8 cordova 应用程序(Android/iOS)中获取实际的用户代理

Posted

技术标签:

【中文标题】如何在 MFP 8 cordova 应用程序(Android/iOS)中获取实际的用户代理【英文标题】:How to get actual User Agent in MFP 8 cordova application(Android/iOS) 【发布时间】:2018-04-10 13:21:58 【问题描述】:
Environment Details:
   1. CLI version-7.0.0,
   2. OKHTTP Version-2.0.0,
   3. Cordova-plugin-mfp Version-8.0.2017100610,
   4. Cordova-plugin-mfp-push Version-8.0.2017112208,
   5. Cordova-android - ~6.3.0,
   6. Cordova-ios - ^4.4.0

问题: Android 和 iPhone 应用程序是使用上述版本构建的。我们有一个防火墙来拦截请求以识别请求是否来自移动设备。

基于用户代理进行防火墙检查,对于适配器调用,我们收到用户代理 “OK http/3.4.1”。所以防火墙拒绝了这个请求。

MFP API 调用 /context/api/az/v1/tokenWLNativeplugin(一加 Android)的用户代理。 em>

从移动设备获取实际用户代理的理想方式是什么?

【问题讨论】:

【参考方案1】:

User-Agent 字符串可以根据请求的来源而有所不同 - 这可能来自 javascript 层或本机 SDK 层。您应该考虑向防火墙添加一条规则,以允许您记录的两个 User-Agent 字符串。

【讨论】:

在MFP的早期版本中,我们习惯于从Javascript层触发适配器,并且在相同的环境下它工作得很好。此外,OkHttp 不能被视为任何端点都可以触发的移动设备发起者。那么我们如何才能确保移动应用触发请求。 okhttp 仅从 MFP 8.0 开始。 MFP SDK 使用 okhttp 作为网络库 安全团队不接受 okhttp 作为有效的用户代理。因为它必须采用移动用户代理。什么是替代品?

以上是关于如何在 MFP 8 cordova 应用程序(Android/iOS)中获取实际的用户代理的主要内容,如果未能解决你的问题,请参考以下文章

如何在 IBM MFP 8.0 中为移动和 Web 使用相同的代码

为啥在安装了 cordova-mfp-push 插件后,我不能在真实的 ios 设备上运行 cordova 应用程序?

WKWebViewEngine 仅在与 cordova-plugin-mfp 结合使用时显示空白屏幕

安装“cordova-plugin-mfp-push”后无法在设备上运行

IBM MobileFirst v8 尝试在成功登录挑战处理程序后获取 android cordova 应用程序上的令牌

mfp cordova 创建错误