我正在我的应用中实施通用链接。每个东西都适合我,除非应用程序没有在后台运行。在这种情况下,我如何在我的应用程序中打开特定页面? iOS启动我的应用程序,但我没有得到任何回调
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *))restorationHandler
在这个函数中,我没有得到任何这个行的网址
NSURL *launchURL = [launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];
在里面
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
此功能。
有没有人知道如何获取启动我的应用程序的网址。
由于
答案 0 :(得分:2)
您可以通过这种方式访问您的网址...
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
bus.register(this);
}
@Override
public void onDestroy() {
super.onDestroy();
bus.unregister(this);
}
但为了更好地使用,您必须验证此URL并在可以管理的情况下返回YES
例如......
NSDictionary *aux = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey];
if (aux) {
NSUserActivity *activity = [aux objectForKey:@"UIApplicationLaunchOptionsUserActivityKey"];
NSString *urlString = activity.webpageURL.absoluteString;
}
..之后的方法
if([urlString hasPrefix:@"https://myUrl.com"]) {
return YES;
}
将被称为
答案 1 :(得分:1)
使用您的应用打开通用链接时
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<NSString *,
id> *)options
如果是这种情况,则使用Universal Link作为参数和选项调用。查看apple docs了解详情。
答案 2 :(得分:0)
您需要实施
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation{
url= yourappurl://with some app link data
sourceApplication= //who called your application
}
例如,如果您的应用程序是从facebook messenger调用的,那么您将获得
sourceApplication=@"com.facebook.messenger"
答案 3 :(得分:0)
在带有 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { }
文件的Swift 5中,它将调用:
Example.objects.all().update(unset__tags__words=1)
当您的应用未在后台运行且用户单击通用链接时。