苹果似乎正在摆脱通过链接打开应用程序的自定义机制。
使用自定义方案(如果要尝试打开应用程序注册的自定义方案),应用程序将打开,javascript函数handleOpenURL将处理调用。
worklight是否支持IOS9中新的“通用链接”方法?
发布于 2015-09-18 04:24:22
通用链接没有作为iOS 9支持的一部分进行测试。如果需要链接,则暂时继续使用自定义方案选项。
编辑:测试并发现正在工作。
发布于 2016-03-14 08:49:50
在我们的项目中,worklight不触发通用链接功能的handleOpenURL功能。
因此,我们使用了以下解决方案:
1)原生层插件
MyAppDelegate+UniversalLinksPlugin.h
#import "rr.h"
@interface MyAppDelegate (UniversalLinksPlugin)
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler;
@endMyAppDelegate+UniversalLinksPlugin.m
#import "rr.h"
#import <objc/runtime.h>
@implementation MyAppDelegate (UniversalLinksPlugin)
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
NSLog(@"Universal links plugin: starting application launch handling.");
// ignore activities that are not for Universal Links
if (![userActivity.activityType isEqualToString:NSUserActivityTypeBrowsingWeb] || userActivity.webpageURL == nil) {
return NO;
}
NSString* url = [userActivity.webpageURL absoluteString];
NSLog(@"Universal links plugin: the following url is used for the application launch %@", url);
NSMutableDictionary *data = [[NSMutableDictionary alloc] init];
[data setValue:url forKey:@"url"];
[[WL sharedInstance] sendActionToJS:@"handleURL" withData:data];
return YES;
}
@end2) config.xml更新:
<feature name="UniversalLinksPlugin">
<param name="ios-package" value="UniversalLinksPlugin"/>
</feature>3) iphone/js/main.js更新:
/**
* UL links handling
*/
document.addEventListener("deviceready", function() {
WL.App.addActionReceiver ("ULReceiver", function(received) {
if (received.action === "handleURL") {
WL.Logger.debug('Inside handle URL action receiver. Provided url: ' + received.data.url);
handleOpenURL(received.data.url);
}
});
}, false);就是这个。我真的希望这会对某人有所帮助)
https://stackoverflow.com/questions/32643257
复制相似问题