Как обеспечить и обрабатывать глубокие ссылки в приложениях cordova / phonegap


Привет Я хотел бы знать о плагине Cordova / Phonegap или способе отображения и обработки глубоких ссылок в моем приложении Sencha Touch / Cordova

До сих пор я могу глубоко связываться с другими приложениями, скажем, открыть Google Play на конкретной странице сведений о приложении.

Используя этот плагин https://github.com/code4jhon/org.apache.cordova.startapp

Поэтому я хотел бы разрешить другим приложениям открывать определенные представления или функции в моем приложении. Я хотелось бы поддерживать Android и IOS.

Итак, есть ли плагин Cordova для демонстрации действий для Android и их аналогов на IOS ?

Или как этого добиться?

Заглянул в Cordova docs, но ничего не нашел... любая помощь, док линк будет очень признателен.

4 10

4 ответа:

Вы можете попробовать https://github.com/EddyVerbruggen/LaunchMyApp-PhoneGap-Plugin

Для меня это сработало идеально.

Не забудьте очистить / построить после установки

Вы можете обрабатывать переменные, реализующие handleOpenURL

function handleOpenURL(url) {
  console.log("received url: " + url);
}

Есть новый плагин, который обрабатывает универсальные ссылки как для Android, так и для iOS: https://github.com/nordnet/cordova-universal-links-plugin

Я смог добиться этого, используя метрики ветвей. Они являются новым стартапом и супер фантастическим.

Проверьте их Cordova plugin docs для глубоких ссылок здесь:

Https://github.com/BranchMetrics/Branch-PhoneGap-Cordova-SDK#initialize-sdk-and-register-deep-link-routing-function

Я рекомендую прочитать все их документы, чтобы понять, что делать. Однако с помощью Ionicframework и AngularJS я создал сервис, который вы можете использовать в своем приложении:

Https://gist.github.com/sean-hill/627fa40f96577baae378

После сборки проекта с помощью плагина Branch выполните следующие действия для настройки iOS и Android.

IOS

Добавьте это в свой файл .plist:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>yourappname</string>
        </array>
    </dict>
</array>

Затем cordova build ios; cordova emulate ios. Чтобы проверить, работает ли он, откройте эмулятор, перейдите в Safari и введите yourappname:// и посмотрите, перенаправляется ли он на ваше приложение.

Андроид

Добавьте это в свой файл AndroidManifest.xml после сборки android:

<intent-filter>
    <data android:scheme="yourappname" android:host="open" />
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

Добавьте это в свой файл config.xml:

<preference name="AndroidLaunchMode" value="singleTask" />

Затем постройте снова, и вы должны быть на пути к большому глубокому успеху!

Согласно запросу @Deminetix, именно так я закрываю сеанс филиала.

document.addEventListener("pause", function(){
    var branch = window.Branch;
    branch.closeSession();  
}, false);

Получайте удовольствие от кодирования:)

Я не думаю, что мы можем использовать плагины cordova для этого. Все cordova и плагины предназначены для установления и выполнения связи между веб-страницей и нативным кодом внутри приложения.

В вашем случае вы пытаетесь разрешить другим приложениям иметь глубокие ссылки в вашем приложении. Это можно сделать только с помощью intent-filter в android и custom-app-url в ios.

Appurl.org имеет довольно хороший пошаговый учебник по обработке пользовательских URL-адресов. Посмотрите на следующие ссылки