在iOS 8中将数据传递到WebView

村庄

我有一个在uiwebview组件中加载Web的应用程序我需要在uiwebview和加载的Web之间进行通信,反之亦然。

我的应用程序在较早的ios(例如ios 7.x,6.x和5.x)中可以正常工作,但是现在我尝试使用ios 8,但它不起作用。我可以将信息从目标c发送到javascript(使用stringByEvaluatingJavaScriptFromString :),但是我无法从javascript接收信息。

为此,我使用了与此处说明相同的方法:ios将值传递给本机应用程序我的意思是,我实现了:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog(@"URL: %@", [request URL]);
NSURL *URL = [request URL]; 

if ([[URL scheme] isEqualToString:@"newprotocol"]) {
    // something
    return NO;
} 
return YES;
}

当我发送:newprotocol:// xxxxx时,我总是收到about:blank

我知道UIWebView在ios 8中已更改,但我想保持与早期版本的兼容性。您知道是否可以在ios 8中执行此操作吗?做这个的最好方式是什么?

非常感谢你!

西恩

我也有这个问题。据我所知,它看起来像更改了iOS 8中的UIWebViewDelegate中的window.location.href不再触发webView:shouldStartLoadWithRequest:navigationType:

我发现了这种替代方法:http : //blog.techno-barje.fr//post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/

本质上,您应该创建一个IFrame并设置其位置以触发委托方法:

var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", "js-frame:myObjectiveCFunction");
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;

编辑:我仍然看到这种方法的奇怪的问题,因此,如果您使用它,YMMV。我最终将UIWebViews迁移到WKWebViews来解决问题:这比我期望的要少。我有条件地将旧的视图控制器与UIWebViews一起使用,以实现向后兼容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据传递到本地HTML iOS Webview

来自分类Dev

将数据传递到UITableViewCell iOS

来自分类Dev

将数据传递到Singleton iOS

来自分类Dev

使用Storyboard Segue iOS将数据传递到视图控制器

来自分类Dev

使用Storyboard Segue iOS将数据传递到视图控制器

来自分类Dev

自定义IOS7过渡,将数据传递到呈现的View Controller

来自分类Dev

iOS-将数据传递到另一个视图控制器

来自分类Dev

iOS-从父视图多次将数据传递到容器视图的视图

来自分类Dev

如何将数据传递给嵌入在 TableViewCell 中的 UICollectionView (xCode - iOS - Swift 3)

来自分类Dev

ios将数据从TabbarController传递到Storyboard中的ViewController

来自分类Dev

将数据从javascript传递到ios

来自分类Dev

STPopUpController 将单击的数据传递到底部表单样式 iOS

来自分类Dev

在vue.js 2.0中将数据传递到组件的textarea

来自分类Dev

如何将数据从 ViewController 传递到标签栏 iOS 中的 ViewController?

来自分类Dev

iOS Swift:将数据从ViewController传递到UITableViewCell

来自分类Dev

iOS如何将数据从UIViewController传递到destinationViewController

来自分类Dev

无法在iOS 9中将文本共享到Whatsapp

来自分类Dev

在Electron中将数据传递到Windows

来自分类Dev

将数据传递给模态/WebView

来自分类Dev

将数据传递到CKEditor中的小部件

来自分类Dev

将数据传递到Angular中的ngDialog

来自分类Dev

将数据传递到laravel中的引导程序模式

来自分类Dev

将POST数据传递到PHP函数中

来自分类Dev

如何使用Codeigniter将数据传递到Ajax中?

来自分类Dev

无法将数据传递到Laravel中的邮件

来自分类Dev

将数据传递到React Native中的组件?

来自分类Dev

将数据传递到Laravel中的通知

来自分类Dev

将数据传递到Android中的服务

来自分类Dev

将数据传递到angularjs中的范围外变量

Related 相关文章

  1. 1

    将数据传递到本地HTML iOS Webview

  2. 2

    将数据传递到UITableViewCell iOS

  3. 3

    将数据传递到Singleton iOS

  4. 4

    使用Storyboard Segue iOS将数据传递到视图控制器

  5. 5

    使用Storyboard Segue iOS将数据传递到视图控制器

  6. 6

    自定义IOS7过渡,将数据传递到呈现的View Controller

  7. 7

    iOS-将数据传递到另一个视图控制器

  8. 8

    iOS-从父视图多次将数据传递到容器视图的视图

  9. 9

    如何将数据传递给嵌入在 TableViewCell 中的 UICollectionView (xCode - iOS - Swift 3)

  10. 10

    ios将数据从TabbarController传递到Storyboard中的ViewController

  11. 11

    将数据从javascript传递到ios

  12. 12

    STPopUpController 将单击的数据传递到底部表单样式 iOS

  13. 13

    在vue.js 2.0中将数据传递到组件的textarea

  14. 14

    如何将数据从 ViewController 传递到标签栏 iOS 中的 ViewController?

  15. 15

    iOS Swift:将数据从ViewController传递到UITableViewCell

  16. 16

    iOS如何将数据从UIViewController传递到destinationViewController

  17. 17

    无法在iOS 9中将文本共享到Whatsapp

  18. 18

    在Electron中将数据传递到Windows

  19. 19

    将数据传递给模态/WebView

  20. 20

    将数据传递到CKEditor中的小部件

  21. 21

    将数据传递到Angular中的ngDialog

  22. 22

    将数据传递到laravel中的引导程序模式

  23. 23

    将POST数据传递到PHP函数中

  24. 24

    如何使用Codeigniter将数据传递到Ajax中?

  25. 25

    无法将数据传递到Laravel中的邮件

  26. 26

    将数据传递到React Native中的组件?

  27. 27

    将数据传递到Laravel中的通知

  28. 28

    将数据传递到Android中的服务

  29. 29

    将数据传递到angularjs中的范围外变量

热门标签

归档