kotlin 如何在Android中获取当前的webview对象?

r1zhe5dt  于 2022-11-30  发布在  Kotlin
关注(0)|答案(1)|浏览(197)
    • bounty将在3天后过期**。回答此问题可获得+50声望奖励。emanoellucas希望吸引更多人关注此问题。

我正在使用Datadog来跟踪我的应用程序中的用户活动。现在我需要检测webviews。在初始化Datadog的sdk之后,它的文档说明我必须调用以下代码片段:
DatadogEventBridge.setup(webView)
也就是说,我必须调用静态方法setup并传递给它一个WebView对象。2但问题是:我的应用程序有很多这样的对象(很多webview)。我是否必须在每个具有WebView属性的类中都放置这段代码?或者是否可以使用回调函数,在安装webview时调用该回调函数,在该回调函数中我将调用DatadogEventBridge. setup(webView)?
我尝试使用生命周期回调,然后为每个"onResume"方法接收一个Activity,以便检查此Activity是否有一个webview。

g6ll5ycj

g6ll5ycj1#

我不是很熟悉Datadog Sdk,但是你可以尝试通过扩展标准的WebView来创建你自己的WebView--然后用它来替换所有其他的WebView。

class TrackableWebView : WebView {

    constructor(context: Context) : super(context)

    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)

    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int)
        : super(context, attrs, defStyleAttr)

    init {
        DatadogEventBridge.setup(this)
    }
}

我认为我们可以假设Sdk将比WebView更早初始化,因此在Sdk初始化之前调用DatadogEventBridge.setup(this)应该没有问题。

相关问题