加载非http:// url方案后的操作

时间:2016-04-18 19:32:47

标签: ios swift uiwebview

我正在尝试创建一个加载应用程序然后可以操作应用程序的程序,就好像它是另一个UIWebView(a.k.a。我想执行javascript)。我认为这可能是因为您可以使用webView和URL方案加载它。但是,一旦加载应用程序,我似乎无法操纵应用程序。这与http://方案成功调用webViewDidFinishLoad这一事实密切相关,但对于非http://方案,不会调用webViewDidFinishLoad ..

以下是我正在使用的一些代码:

let fb:NSURL! =  NSURL(string:"fb://feed");
webView.loadRequest(NSURLRequest(URL:fb));

... 仅在http:// schemes上调用以下函数。

func webViewDidFinishLoad(webView: UIWebView) {

    print("hellO");
}

注意:它已成功加载Facebook Feed(但已完成加载方法

1 个答案:

答案 0 :(得分:1)

不幸的是,这是不可能的。

  • 出于安全原因,iOS应用程序无法操纵其他应用程序,就像使用您控制的Web视图中的网页一样。
  • 由于技术原因,注入的JavaScript无法用于操作典型的原生iOS应用,因为大多数应用都不是基于网络的。

iOS应用程序可以提供的自定义网址方案只能启动应用程序(远离您的应用程序;不在Web视图内部),并提供其他应用程序发布的功能(例如跳转到Facebook和#39) ;在你的例子中提供。)

webViewDidFinishLoad未被调用,因为iOS正在从您的应用切换到Facebook应用。