iOS 14 小部件:单击项目以在 Cordova 上打开应用程序页面
iOS 14 Widget: Click item to open app page on Cordova
我有一个基于 Cordova 的项目,最近我为 ios 14 开发了小部件。
目标:当用户单击小部件文章项目时,我想要 console.log() 或在 Cordova 项目上捕获 URL,以便我可以将用户重定向到文章页面。
在项目中已经存在处理深度的代码link。但是无论何时,我都单击我的应用程序启动的小部件项目。
例如:如果单击 Slack 应用程序中的文章 link。用户将登陆相应的文章。
我正在使用这个插件
cordova-universal-links-plugin, cordova-plugin-customurlscheme
关于 Widget Native 代码,我遵循了文档 Creating widget
对于我正在使用的其他小部件,我正在使用 Link 方法 WidgetFamily.systemMedium 或 WidgetFamily.systemLarge
widgetURL(_:)
Link(destination: URL(string: urlString)!,label: {
Text(article.Title != nil ? article.Title! : "test")
.lineLimit(3)
.font(.system(size: 14, weight: .semibold, design: .default))
.padding()
})
.widgetURL(URL(string: article.URL != nil ? article.URL! : ""))
我在 cordova APP 上有
// Custom url scheme : cordova-plugin-customurlscheme
window.handleOpenURL = url => {
setTimeout(() => {
main.onOpenApplicationLinks(url)
}, 0)
}
// Universal Link Cordova Plugin
universalLinks.subscribe('openPath', (eventData)=> console.log(eventData))
如何在 cordova App 上捕获 URL 或记录 URL
提前致谢
经过几天的研究。我终于对 cordova-universalLink-Plugin 进行了更改。
在插件 Appdelegate+CULPlugin.m 添加
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([url.scheme isEqualToString:@"http"] || [url.scheme isEqualToString:@"https"]) {
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
[activity setWebpageURL:url];
CULPlugin *plugin = [self.viewController getCommandInstance:PLUGIN_NAME];
return [plugin handleUserActivity:activity];
}else{
return NO;
}
}
瞧...,现在可以使用了
我有一个基于 Cordova 的项目,最近我为 ios 14 开发了小部件。 目标:当用户单击小部件文章项目时,我想要 console.log() 或在 Cordova 项目上捕获 URL,以便我可以将用户重定向到文章页面。
在项目中已经存在处理深度的代码link。但是无论何时,我都单击我的应用程序启动的小部件项目。 例如:如果单击 Slack 应用程序中的文章 link。用户将登陆相应的文章。
我正在使用这个插件 cordova-universal-links-plugin, cordova-plugin-customurlscheme
关于 Widget Native 代码,我遵循了文档 Creating widget 对于我正在使用的其他小部件,我正在使用 Link 方法 WidgetFamily.systemMedium 或 WidgetFamily.systemLarge widgetURL(_:)
Link(destination: URL(string: urlString)!,label: {
Text(article.Title != nil ? article.Title! : "test")
.lineLimit(3)
.font(.system(size: 14, weight: .semibold, design: .default))
.padding()
})
.widgetURL(URL(string: article.URL != nil ? article.URL! : ""))
我在 cordova APP 上有
// Custom url scheme : cordova-plugin-customurlscheme
window.handleOpenURL = url => {
setTimeout(() => {
main.onOpenApplicationLinks(url)
}, 0)
}
// Universal Link Cordova Plugin
universalLinks.subscribe('openPath', (eventData)=> console.log(eventData))
如何在 cordova App 上捕获 URL 或记录 URL 提前致谢
经过几天的研究。我终于对 cordova-universalLink-Plugin 进行了更改。 在插件 Appdelegate+CULPlugin.m 添加
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
if ([url.scheme isEqualToString:@"http"] || [url.scheme isEqualToString:@"https"]) {
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:NSUserActivityTypeBrowsingWeb];
[activity setWebpageURL:url];
CULPlugin *plugin = [self.viewController getCommandInstance:PLUGIN_NAME];
return [plugin handleUserActivity:activity];
}else{
return NO;
}
}
瞧...,现在可以使用了