我创建了一个 Xamarin 表单应用程序并为 iOS 配置了自定义 URL 方案,但它在 iOS 14 中没有触发。
因此,我创建了一个示例 native iOS 项目并测试自定义 URL 方案,它正在工作。 这是示例 iOS swift 代码。
import SwiftUI
@main
struct TestApp: App {
//@UIApplicationDelegateAdaptor var delegate: AppDelegate
var body: some Scene {
WindowGroup {
ContentView().onOpenURL(perform: handleURL)
}
}
func handleURL(_ url: URL) {
print("source application")
print(url)
}
}
但是我如何将其转换为 Xamarin.因为如何在 Xamarin iOS 中调用 onOpenURL?
最佳答案
在 info.plist 中添加有关自定义方案的信息。您可以在 iOS 项目选项中执行此操作:
双击您的 iOS 项目 >> 构建 > iOS 应用程序 >> 高级(选项卡)
在底部,您将看到“URL 类型”部分。在那里添加有关您的自定义方案的信息。例如:
在“标识符”字段中,输入“com.myapp.urlscheme”。在“URL 方案”字段中,输入“myapp”。
接下来您需要在 AppDelegate 文件中重写:
public override bool OpenUrl (UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
{
// custom stuff here using different properties of the url passed in
return true;
}
继续并在上面的覆盖中的“return true”上设置断点
现在,如果您在模拟器上构建并运行,然后在 Safari(在模拟器上)的 URL 栏中输入“myapp://com.myapp.urlscheme”,它应该启动您的应用程序,命中断点,然后“url”参数将为“myapp://com.myapp.urlscheme”。
关于ios - Xamarin IOS 自定义 URL 方案在 iOS 14 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68827155/