WkWebview因Angular

时间:2016-09-09 07:52:45

标签: javascript ios css angularjs wkwebview

背景

我们有一个简单的 Angular + Bootstrap 应用,该应用在外部应用中运行,该应用使用 WkWebview 来嵌入我们的页面。该应用程序适用于桌面所有操作系统,Android和Iphone。 没有javascript错误或CSS警告。

问题

然而,随机当我们点按<a href="#screen2"时,它会冻结在iPad中运行。这会触发routerProvider上的更改,以便更改屏幕控制器和模板。  它像一个透明层接缝锁定整个屏幕。或者所有事件(单击标签滚动)都被锁定。

怪诞

如果我们将方向更改为横向,则屏幕将解锁。如果我们再次转向肖像,它会再次锁定。

其他

我们无法将WkWebview更改为更新版本。我们只能控制webapp。 我们知道WkWebview有几个与以下问题相关的问题:滚动,聚焦和显示影响渲染的更改并导致空白或冻结屏幕。 我们也使用此脚本来避免某些焦点事件的空白屏幕:

(function(){
             try{
                  var a=navigator.userAgent;
                  if((a.indexOf('Salesforce')!=-1)&&(a.indexOf('iPhone')!=-1||a.indexOf('iPad')!=-1)&&(a.indexOf('OS/8')!=-1||a.indexOf('OS 8')!=-1||a.indexOf('OS/9')!=-1||a.indexOf('OS 9')!=-1||a.indexOf('OS 10')!=-1||a.indexOf('OS/10')!=-1)&&(a.indexOf('Safari')==-1)){
                    var s=document.createElement('style'); 
                    if(a.indexOf('OS/8')!=-1||a.indexOf('OS 8')!=-1) {
                        s.innerHTML="html,html body{overflow: auto;-webkit-overflow-scrolling:touch;}body{position:absolute;left:0;right:0;top:0;bottom:0;}";
                    }
                    else if(a.indexOf('OS/9')!=-1||a.indexOf('OS 9')!=-1) {
                        s.innerHTML="html,html body{overflow: auto;-webkit-overflow-scrolling:auto;}body{position:absolute;left:0;right:0;top:0;bottom:0;}";
                    }
                    else if(a.indexOf('OS/10')!=-1||a.indexOf('OS 10')!=-1) {
                        s.innerHTML="html,html body{overflow: auto;-webkit-overflow-scrolling:auto;}body{position:absolute;left:0;right:0;top:0;bottom:0;}";
                    }
                    document.getElementsByTagName('head')[0].appendChild(s);}}catch(e){}})();

问题

解决此问题的任何解决方法?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果更好地共享交叉检查链接,您的陈述将有两个问题

1)Angular + bootstrap应用程序问题 检查您的应用程序是否具有生产版本,图像,css是否已缩小以及其是否支持DSN。

2)WkWebview问题:您在Wkwebview上检查Web应用程序存在一些内存限制,但在检查Webview的配置设置之前就存在限制

https://developer.apple.com/documentation/webkit/wkwebviewconfiguration