Перенаправление ярлыков в цикле iOS — ЯрлыкIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Перенаправление ярлыков в цикле iOS — Ярлык

Сообщение Anonymous »

У меня есть ярлык. Если целевое приложение открыто, откройте мое приложение с помощью ярлыка.
Поэтому у меня возникла проблема с зацикливанием.
Это правильное поведение,
  • Открыть целевое приложение
  • Открыть мое приложение
  • Снова открыть целевое приложение (теперь целевое приложение уже работает в фоновом режиме)
    Снова откройте мое приложение.
Мы ожидали поведения,
  • Открыть целевое приложение
  • Открыть мое приложение
  • Снова открыть целевое приложение (теперь целевое приложение уже работает в фоновом режиме)
  • Нет необходимости повторно перенаправляться в мое приложение, поскольку приложение находится в фоновом режиме.
Вот мой код для ярлыка.

Код: Выделить всё

import AppIntents
import SwiftUI
import SwiftUICore
import UIKit
//
// These will be the options in the Shortcut action to open a book or navigate to the library
enum NavigationType: String, AppEnum, CaseDisplayRepresentable {
case library
case book

// This will be displayed as the title of the menu shown when picking from the options
@available(iOSApplicationExtension 16, *)
static var typeDisplayRepresentation = TypeDisplayRepresentation(name: "Navigation")

@available(iOSApplicationExtension 16.0, *)
static var caseDisplayRepresentations: [Self:DisplayRepresentation] = [
.library: DisplayRepresentation(title: "Library",
subtitle: "Return to the home page",
image: .init(systemName: "books.vertical")),
.book: DisplayRepresentation(title: "Book",
subtitle: "Navigate to a specific book",
image: .init(systemName: "book"))
]
}
// Enum to represent the static book options
enum AppOption: String, AppEnum, CaseDisplayRepresentable {
case youtube = "YouTube"
case facebook = "Facebook"
case twitter = "Twitter"

@available(iOSApplicationExtension 16.0, *)
static var typeDisplayRepresentation = TypeDisplayRepresentation(name: "App")

@available(iOSApplicationExtension 16.0, *)
static var caseDisplayRepresentations: [Self: DisplayRepresentation] = [
.youtube: DisplayRepresentation(title: "YouTube",
subtitle: "com.google.ios.youtube"),
.facebook: DisplayRepresentation(title: "Facebook",
subtitle: "com.facebook.ios"
),
.twitter: DisplayRepresentation(title: "Twitter",
subtitle: "com.twitter.ios")
]
}

// Struct to represent an app
struct App {
let appName: String
let bundleID: String
let deepLinking:String
}

// Sample app data (you can load this dynamically in the future)
let appsDetail = [
App(appName: "YouTube", bundleID: "com.google.ios.youtube",deepLinking:"youtube://"),
App(appName: "Facebook", bundleID: "com.facebook.ios",deepLinking:"fb://"),
App(appName: "Twitter", bundleID: "com.twitter.ios",deepLinking:"twitter://")
]

@available(iOSApplicationExtension 16.0, *)
struct OpenBook: AppIntent {

// Title o  f the action in the Shortcuts app
@available(iOSApplicationExtension 16, *)
static var title: LocalizedStringResource = "Open App"
// Description of the action in the Shortcuts app
@available(iOSApplicationExtension 16.0, *)
static var description: IntentDescription = IntentDescription("This action will open the selected book in the Booky app or navigate to the home library.", categoryName: "Navigation")
// This opens the host app when the action is run
static var openAppWhenRun = true

@Parameter(title: "App", description: "The book to open in Booky", requestValueDialog: IntentDialog("Which book would you like to open?"))
var apps: AppOption

// An enum parameter
@Parameter(title: "Navigation", description: "Choose whether to open a book or navigate to Booky's library", default: .book, requestValueDialog: IntentDialog("What would you like to navigate to?"))
var navigation:  NavigationType

// How the summary will appear in the shortcut action.
static var parameterSummary: some ParameterSummary {
Summary("Open \(\.$apps)")
}

@MainActor //  some IntentResult {
guard let selectedBook = appsDetail.first(where: { $0.appName == apps.rawValue }) else {
throw NSError(domain: "OpenBookError", code: 1, userInfo: [NSLocalizedDescriptionKey: "Book not found."])
}
let userInfo: [String: Any] = ["selectedBook": [
"appName": selectedBook.appName,
"bundleId": selectedBook.bundleID,
"deepLinking": selectedBook.deepLinking,
]]

NotificationCenter.default.post(name: NSNotification.Name("OpenBookCallback"), object: nil, userInfo: userInfo)

return .result()
}
}
Мы ожидали поведения.
  • Откройте целевое приложение.
  • Откройте мое приложение.
  • Снова откройте целевое приложение (теперь целевое приложение уже находится в фоновом режиме).
  • Нет необходимости снова перенаправляться в мое приложение, поскольку приложение находится в фоновом режиме.
  • Снова откройте целевое приложение (теперь целевое приложение уже находится в фоновом режиме).
  • Нет необходимости снова перенаправляться в мое приложение, поскольку приложение находится в фоновом режиме.
    li>


Подробнее здесь: https://stackoverflow.com/questions/791 ... s-shortcut
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Стилизация ярлыков в приложении ярлыков iOS
    Anonymous » » в форуме IOS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Стилизация ярлыков в приложении ярлыков iOS
    Anonymous » » в форуме IOS
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Стилизация ярлыков в приложении ярлыков iOS
    Anonymous » » в форуме IOS
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Перенаправление приложений туда и обратно с помощью ярлыков Apple
    Гость » » в форуме IOS
    0 Ответы
    31 Просмотры
    Последнее сообщение Гость
  • Перенаправление (безопасное перенаправление wp) с задержкой сбора данных клиента
    Anonymous » » в форуме Php
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»