我们有一个简单的 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){}})();
解决此问题的任何解决方法?
提前致谢
答案 0 :(得分:0)
如果更好地共享交叉检查链接,您的陈述将有两个问题
1)Angular + bootstrap应用程序问题 检查您的应用程序是否具有生产版本,图像,css是否已缩小以及其是否支持DSN。
2)WkWebview问题:您在Wkwebview上检查Web应用程序存在一些内存限制,但在检查Webview的配置设置之前就存在限制
https://developer.apple.com/documentation/webkit/wkwebviewconfiguration