小编Ale*_*uev的帖子

WKWebKit未附加到视图层次结构时执行javascript

我想切换到WKWebViewUIWebView.在我的代码中,Web视图实例是在屏幕外创建的(不附加到视图层次结构)并且加载了URL.加载完成后,Web视图将在单独的UIWindow(如插页式广告)中呈现给用户.一切正常UIWebView; 但在切换到之后WKWebView,角度javascript代码以意想不到的方式运行.

在做了一些研究之后,我发现当WKWebView实例未附加到视图层次结构时,javascript计时器(和HTTP加载器)被挂起:如果你在javascript中启动一个以分离运行的计时器WKWebView- 它将不会被触发Web视图已附加.

任何人都可以建议一个可能的解决方法(除了将隐藏的Web视图附加到关键窗口,然后将其移动到另一个窗口)?

我已经创建了一个示例项目来演示问题(或者更有可能是WebKit功能)

https://dl.dropboxusercontent.com/u/148568148/WebKitViewTest.zip

测试应用程序加载带有javascript的网页,该网页调度计时器并加载HTTP请求.您可以使用开关来显示/隐藏Web视图(设置"隐藏"属性)并将其从视图层次结构中附加/分离.

在iOS 8.0上运行的示例应用程序

如果Web视图已附加(隐藏或可见)并且您点击Load,则javascript工作正常:您可以查看successfailure警告对话框.如果它已分离 - 计时器只会在它附加到视图层次结构时触发(将"Detached"切换为"on",点击"Load",等待几秒钟并切换回"off").您也可以console.log从Safari Web Inspector 查看.

这是测试网页源:

<!doctype html>
<html ng-app="project">
  <head>
    <script
      src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.16/angular.js"></script>
    <script src="project.js"></script>
  </head>
  <body>
    <div id="simple" ng-controller="MyController" data-ng-init="callNotify(message);">
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

和javascript:

angular.
  module('project', []).
  controller('MyController', ['$scope','notify', function ($scope, notify) {
  $scope.callNotify = function(msg) {
    notify(msg);
  };
}]).
  factory('notify', ['$window', '$http', '$q', '$timeout', function(win, $http, $q, $timeout) { …
Run Code Online (Sandbox Code Playgroud)

javascript webkit ios angularjs wkwebview

38
推荐指数
1
解决办法
2688
查看次数

应用程序请求在iPhone浏览器中不起作用,但在Facebook应用程序中有效

我正在从我的iPhone应用程序发送应用程序请求,并希望用户在接受请求时被重定向到App Store页面.

在应用程序设置中,我添加了"App on Facebook"项目以及"Native iOS App"以外的假Canvas URL,以便查看请求(它们不会出现没有Canvas URL).在iPhone/iPad上的Facebook应用程序中一切正常,但在设备上的Safari浏览器中无效.

该请求不会带来appstore但会打开错误页面:

Error
Sorry, the application you were using is experiencing a problem. Please try again later.
Run Code Online (Sandbox Code Playgroud)

我已经看到一些其他应用程序工作正常:请求在浏览器中点击带来appstore.所以猜测应用程序设置或类似内容中缺少某些内容 有线索吗?

屏幕截图 屏幕截图 屏幕截图 屏幕截图

iphone distribution ios apprequests facebook-app-requests

5
推荐指数
1
解决办法
867
查看次数