首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Whatsapp集成与openURL 10中的iOS问题

Whatsapp集成与openURL 10中的iOS问题
EN

Stack Overflow用户
提问于 2016-10-14 10:24:09
回答 1查看 2.1K关注 0票数 2

我已经将whastapp集成到了我的iOS应用程序中。当我在我的iOS 10设备上测试它时。它因一个问题而崩溃。

快照未呈现的视图将生成空快照。确保在快照或屏幕更新后的快照之前至少呈现过一次视图。

代码语言:javascript
复制
NSURL *whatsappURL = [NSURL URLWithString:[NSString stringWithFormat: @"whatsapp://send?abid=%@&text=WelcomeToChatBought",[abidArray objectAtIndex:buttonclicked.tag-1000]]];
        if ([[UIApplication sharedApplication] canOpenURL: whatsappURL])
        {
            [[UIApplication sharedApplication] openURL: whatsappURL];
        }

可能是什么问题。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-10-14 11:40:02

如果没有设置,则需要在plist中设置LSApplicationQueriesSchemes

喜欢,

代码语言:javascript
复制
<key>LSApplicationQueriesSchemes</key>
<array>
 <string>urlscheme1</string>
 <string>urlscheme2</string>

</array> 

另外,请注意,在:) 10中不推荐使用iOS。

新的UIApplication方法openURL:options:completionHandler:,该方法异步执行,并在主队列上调用指定的完成处理程序(此方法替换openURL:)。

iOS 10__中的新方法

代码语言:javascript
复制
- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options
  completionHandler:(void (^ __nullable)(BOOL success))completion

参数:

  • 打开的URL
  • 选项字典(有效条目请参见下面)。对于与openURL:相同的行为,请使用空字典。
  • 成功地调用主队列的完成处理程序。如果您对状态不感兴趣,请使用Nullable

喜欢,

代码语言:javascript
复制
UIApplication *application = [UIApplication sharedApplication];
[application openURL:URL options:@{} completionHandler:nil];

示例:

代码语言:javascript
复制
NSString *scheme=[NSString stringWithFormat: @"whatsapp://send?abid=%@&text=WelcomeToChatBought",[abidArray objectAtIndex:buttonclicked.tag-1000]]];

  UIApplication *application = [UIApplication sharedApplication];
  NSURL *URL = [NSURL URLWithString:scheme];

  if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {
    [application openURL:URL options:@{}
       completionHandler:^(BOOL success) {
      NSLog(@"Open %@: %d",scheme,success);
    }];
  } else {
    BOOL success = [application openURL:URL];
    NSLog(@"Open %@: %d",scheme,success);
  }

点击此处阅读更多信息:

http://useyourloaf.com/blog/openurl-deprecated-in-ios10/

编辑:(基于iOS版本的代码)

代码语言:javascript
复制
NSURL *URL = [NSURL URLWithString:strUrl];

if([[UIDevice currentDevice].systemVersion floatValue] >= 10.0){

  if ([application respondsToSelector:@selector(openURL:options:completionHandler:)]) {
    [application openURL:URL options:@{}
       completionHandler:^(BOOL success) {
      NSLog(@"Open %@: %d",scheme,success);
    }];
  } else {
    BOOL success = [application openURL:URL];
    NSLog(@"Open %@: %d",scheme,success);
  }


}
else{

  bool can = [[UIApplication sharedApplication] canOpenURL:URL];

  if(can){

     [[UIApplication sharedApplication] openURL:URL];

  }

}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40040853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档