• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - AppDelegate.m 需要将数据发送到单独的 ViewController 的 WebView

[复制链接]
菜鸟教程小白 发表于 2022-12-12 17:31:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

- (BOOL)applicationUIApplication *)application handleOpenURLNSURL *)url {

     if ([url.scheme isEqualToString"mycustomscheme"]) {

          NSString *urlString = @"http://google.com/";
          NSURL *urlString = [NSURL URLWithString:urlString];
          NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
          [tapView loadRequest:loadObj];

     }
}

“tapView”(一个 UIWebView)在“ViewController.m”中工作得很好,但是当我在“AppDelegate.m”中使用它时它就不起作用了。我需要做些什么才能让这段代码在我的“AppDelegate.m”文件中运行。我会很感激一步一步的解释,因为我是一名网页设计师,而不是程序员,呵呵。

我的代码试图做的是检测在 Safari 中加载的“mycustomscheme://”,当然还要启动应用程序,然后将 google.com 加载到 UIWebView 中(以证明它正在工作)。我不知何故需要连接 tapView 以便它由 AppDelegate.m 操作。



Best Answer-推荐答案


最好让 ViewController 自己加载 Web View ,因此您应该在该 Controller 中创建一个方法来处理该操作(在 ViewController.m 中):

-(void)loadWebViewFromAppDelegate {
     NSString *urlString = @"http://google.com/";
     NSURL *urlString = [NSURL URLWithString:urlString];
     NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
     [tapView loadRequest:loadObj]; // I'm assuming that tapView is a property or outlet in this controller
}

在应用委托(delegate)中,获取对该 Controller 的引用,并调用其方法,

- (BOOL)applicationUIApplication *)application handleOpenURLNSURL *)url {

     if ([url.scheme isEqualToString"mycustomscheme"]) {
         ViewController *vc = (ViewController *)self.window.rootViewController;
         [vc loadWebViewFromAppDelegate];
     }
}

关于ios - AppDelegate.m 需要将数据发送到单独的 ViewController 的 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20795450/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap