Mar*_*iry 8 javascript css ios angularjs wkwebview
我们有一个简单的Angular + Bootstrap应用程序,该应用程序在使用WkWebview嵌入页面的外部应用程序中运行。该应用程序可在所有操作系统,Android和Iphone的Desktop上正常运行。没有javascript错误或CSS警告。
但是,当我们点击时,它会随机冻结在iPad中的运行<a href="#screen2"。这会触发更改,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){}
})();
有解决此问题的解决方法吗?
提前致谢
小智 0
如果最好分享一下链接进行交叉检查的话,你的陈述会有两个问题
1)Angular+bootstrap应用程序问题检查您的应用程序操作系统生产版本是否,图像,CSS是否缩小以及其是否支持DSN。
2)WkWebview问题:您在Wkwebview上检查您的Web应用程序有一些内存限制,但之前只需检查webview的配置设置
https://developer.apple.com/documentation/webkit/wkwebviewconfiguration
| 归档时间: | 
 | 
| 查看次数: | 542 次 | 
| 最近记录: |