Deeplink - это URI (унифицированный идентификатор ресурса), который ведет к этому контенту, а не к его домашней странице.
Когда дело доходит до мобильного приложения, это аналогичная концепция, и мы открываем приложение в этом конкретном месте. Для мобильного приложения возможны два сценария:
Приложение установлено: если приложение установлено, мы можем перейти к этому контенту. Здесь также есть два сценария, но они будут обрабатываться мобильными разработчиками, например, если перенаправление на
authorization URL
, тогда нам (разработчику мобильных приложений) необходимо проверить, авторизован ли он на этой странице, проще говоря, пользовательlogin
илиsubscribe
на эту страницу или кто-то другой, если у пользователя есть доступ, перейдите к этому мобильному макету или странице, в противном случае выполните перенаправление, чтобы войти в систему или приобрести подписку, в зависимости от требований.
Приложение не установлено. », Чтобы загрузить приложение.
Теперь перейдем к части кодирования, как это можно сделать. Я использую событие javascript под названием «навигатор», и его можно реализовать на любой веб-странице. Я реализовал это с помощью Angular 6.
Предположим, мой URL-адрес - http://myrl.com/mycomponent и внутри него много поездок / событий или чего-то еще, теперь, если я открываю в мобильном браузере, я хочу открыть открытый с этим ссылка
Файл TS компонента: - trips.component.ts
import { Component, OnInit } from '@angular/core'; import { DeeplinkService } from 'folderpath/deeplink.service' // declare function deeplink(): any; @Component({ selector: 'app-trips', templateUrl: './trips.component.html', styleUrls: ['./trips.component.scss'] }) export class TripsComponent implements OnInit { constructor(private deeplinkService : DeeplinkService) { } ngOnInit() { } handleTripDetail(params){ this.deeplinkService.deeplink(params); } }
Теперь я делаю все макеты / страницы с подробностями поездки и для мобильного приложения, поэтому сначала проверю, открыт ли он в браузере Android или iOS, а затем перейду на эту страницу внутри мобильного приложения, в противном случае перенаправляю на URL-адрес веб-сайта.
Сервисный файл: deeplink.service.ts
import { Injectable } from "@angular/core"; @Injectable() export class DeeplinkService { constructor() {} deeplink() { let ua = navigator.userAgent.toLowerCase(); let isAndroid = ua.indexOf("android") > -1; // android check let isIphone = ua.indexOf("iphone") > -1; // ios check if (isIphone == true) { let app = { launchApp: function() { setTimeout(function() { window.location.href = "https://itunes.apple.com/us/app/appname/appid"; }, 25); window.location.href = "bundlename://linkname"; //which page to open(now from mobile, check its authorization) }, openWebApp: function() { window.location.href = "https://itunes.apple.com/us/app/appname/appid"; } }; app.launchApp(); } else if (isAndroid== true) { let app = { launchApp: function() { window.location.replace("bundlename://linkname"); //which page to open(now from mobile, check its authorization) setTimeout(this.openWebApp, 500); }, openWebApp: function() { window.location.href = "https://play.google.com/store/apps/details?id=packagename"; } }; app.launchApp(); }else{ //navigate to website url } }
Аналогичным образом это можно сделать в REACT, VUE, EJS, PHP и т. Д.