×

linkt轻量级Kotlin库

消耗积分:2 | 格式:zip | 大小:0.15 MB | 2022-06-10

学电超人

分享资料个

授权协议 MIT
开发语言 Kotlin
操作系统 Android
软件类型 开源软件

软件简介

Linkt 是一个轻量级和简单的 Kotlin 库,用于 Android 上的 DeepLink 处理。

设置

配置根目录build.gradle

allprojects {  
    repositories {  
        ...  
        maven { url 'https://jitpack.io' }  
    }  
}  

Linkt添加到项目build.gradle

dependencies {
  implementation 'com.github.jeziellago:Linkt:TAG'
}
  1. 创建DeepLinkModule并注册 deeplinks
class MyDeepLinkModule : DeepLinkModule {

    override fun load() {
        deepLinkOf(
            "linkt://sample",
            "linkt://sample/{userId}/{userName}"
        ) { context, bundle ->
            Intent(context, MainActivity::class.java)
                .apply { putExtras(bundle) }
        }
    }
}

在多模块项目中,你应该有一个或多个 DeepLinkModule。

  1. 将你的模块注册到Application#onCreate, 中DeepLinkLoader#setup
class  MyApplication : Application () {
     override  fun  onCreate () {
         super .onCreate()
         DeepLinkLoader .setup( MyDeepLinkModule ()) 
    } 
}
  1. 创建DeepLinkActivity,并调用DeepLinkLoader#loadFrom
class DeepLinkActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // resolve deeplink
        DeepLinkLoader.loadFrom(this)
    }
}

不要忘记配置AndroidManifest.xml

<activity
    android:name="org.linkt.DeepLinkActivity"
    android:theme="@android:style/Theme.NoDisplay">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="mycompany" />
    intent-filter>
activity>

如何从 deeplink 获取数据

路径参数

  • Template linkt://sample/{userId}/{userName}
  • Received: linkt://sample/9999/Jose
// get path parameters
val userId = intent.extras.getString("userId")
val userId = intent.extras.getString("userName")

查询参数

  • Template: linkt://sample
  • Received linkt://sample?subject=Linkt&name=Sample
// get query parameters
val subject = intent.extras.getString("subject")
val name = intent.extras.getString("name")

路径+查询参数

  • Template linkt://sample/{userId}/{userName}
  • Received linkt://sample/999/Jose?subject=Linkt&name=Sample
// get path parameters
val userId = intent.extras.getString("userId")
val userId = intent.extras.getString("userName")
// get query parameters
val subject = intent.extras.getString("subject")
val name = intent.extras.getString("name")

 

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !