如何在 fyne android 应用程序上访问深层链接中的参数值?

问题描述 投票:0回答:1

我正在开发一个 Fyne 应用程序,该应用程序将被编译并安装为 Android 应用程序。

该应用程序允许用户使用 oauth2 进行身份验证。身份验证服务器将身份验证代码作为参数值在 url 字符串中返回给应用程序。我可以建立深层链接并通过深层链接打开我的 fyne 应用程序,但不知道如何访问意图的数据字符串以解析参数值。

Google 上的大量研究仅显示了 Kotlin/Java 中的解决方案,没有提及任何人在 Golang 或 Fyne 项目中实现了这一点。

项目的AndroidManifest.xml的activity部分如下

<activity
            android:label="myapp"
            android:name="org.golang.app.GoNativeActivity"
            android:configChanges="0xa0">
            <meta-data
                android:name="android.app.lib_name"
                android:value="myapp" />
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter 
                android:label="@string/oauth2_deep_link">
                <!-- below for Deep Linking -->
                <action 
                    android:name="android.intent.action.VIEW" />
                <!-- allows your app to respond to implicit intents. Without this, the activity can be started only if the intent specifies your app component name.-->
                <category 
                    android:name="android.intent.category.DEFAULT" />
                <!-- BROWSABLE required for intent-filter to be accessible from browser-->
                <category 
                    android:name="android.intent.category.BROWSABLE" />
                <!-- Accepts URIs that begin with "myapp://oauth2/code” -->
                <data 
                    android:scheme="myapp"
                    android:host="oauth2" />
                
            </intent-filter>
        </activity>

我希望使用 URL“myapp://oauth2/?code=kalksdnfaldsfn”将身份验证代码返回到应用程序

对 Kotlin 不太了解,但我认为这可以在 Kotlin 中通过使用类似以下函数来实现。

fun Intent.getData(key: String): String {
    return extras?.getString(key) ?: "intent is null"
}

Golang 有一个库可以实现这一点吗?

go deep-linking android-deep-link fyne
1个回答
0
投票

我正在解决同样的问题。我认为您可能已经对 Kotlin 代码有所了解,但我现在不确定如何创建一个从 Go 到 Kotlin 的方法通道,就像我目前在另一个项目中从 Flutter 到 Java 所做的那样。我会为这篇文章添加书签,并在获得更多答案时通知您。

© www.soinside.com 2019 - 2024. All rights reserved.