Linkt轻量级 Kotlin 库
Linkt 是一个轻量级和简单的 Kotlin 库,用于 Android 上的 DeepLink 处理。
设置
配置根目录build.gradle
:
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }
将Linkt
添加到项目build.gradle
:
dependencies { implementation 'com.github.jeziellago:Linkt:TAG' }
- 创建
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。
- 将你的模块注册到
Application#onCreate
, 中DeepLinkLoader#setup
:
class MyApplication : Application () { override fun onCreate () { super .onCreate() DeepLinkLoader .setup( MyDeepLinkModule ()) } }
- 创建
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")
评论
J-SUtilJava 轻量级ORM库
J-SUtil(javaSimpleUtility)一个轻量级的开源插件。25K的大小让你的web应用瞬间轻松拥有log和数据库访问映射功能(DAO)。支持mysql、Sqlserver、or
J-SUtilJava 轻量级ORM库
0
Quasar-JavaJava 轻量级线程库
Quasar是一个Java库,提供了高性能、轻量级的线程,类似Go语言的Channel,Erlang语言的Actor和其他异步编程工具。InMaven:<dependency> &l
Quasar-JavaJava 轻量级线程库
0
knet轻量级网络库
knet是跨平台,多线程,轻量级的TCP传输库,支持 Windows和CentOS的 IOCP,select,epoll模型,将会支持更多的Linux和UnixOS版本。knet并不是像libeven
knet轻量级网络库
0
JSLite轻量级 JavaScript 库
JSLite.js让web开发更迅速,下载执行更快、量级更轻,针对现代高级浏览器的JavaScript库。推进前端开发标准对于攻城师来说,人人有责。一直在更新看官方文档。更换网址:http://JSl
JSLite轻量级 JavaScript 库
0
tstring轻量级字符串库
tstring是用C语言实现的轻量级字符串库,参考了glib中的GString实现,提供了和redis中的sds类似的功能。联系作者:forhappy,email:haipingfATgmail.co
tstring轻量级字符串库
0