DeepLink有两种应用场景,一种是PendingIntent,另一种是真实的URL链接,利用这两种方式都可以跳转到程序中指定的页面。
一、PendingIntent方式
PendingIntent方式一般用在通知中。当应用程序接收到某个通知时,并且希望用户在单击该通知时直接跳转到到展示该通知的页面,就可以通过PendingIntent来完成。
以下代码实现的功能是,在MainActivity中单击按钮弹出通知栏,点击通知栏跳转到指定NotificationActivity页面中,这里NotificationActivity页面仅有一个TextView现实当前页面是NotificationActivity,以便和MainActivity做区分。
class MainActivity : AppCompatActivity() {
lateinit var manager:NotificationManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager//获取NotificationManager实例
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
//NotificationChannel和createNotificationChannel都是Android8.0以后新增的API
//注意通知渠道一旦建立就无权修改
val channel = NotificationChannel("normal","Normal",NotificationManager.IMPORTANCE_DEFAULT)
manager.createNotificationChannel(channel)
val channel2 = NotificationChannel("important",