Javascript 内部带有html的cordova iframe未在iOS设备上显示

Javascript 内部带有html的cordova iframe未在iOS设备上显示,javascript,ios,cordova,iframe,ionic-framework,Javascript,Ios,Cordova,Iframe,Ionic Framework,我试图在我的ionic应用程序中显示iframe,但不知怎么的,它出现在浏览器上,但没有出现在iOS设备上。我想用html代码填充它。 我的代码: <ion-content> <iframe width="300px" height="325px" frameborder="0" scrolling="yes" marginwidth="0" marginheight="0" ng-attr-srcdoc="{{model.html}}"> </if

我试图在我的ionic应用程序中显示iframe,但不知怎么的,它出现在浏览器上,但没有出现在iOS设备上。我想用html代码填充它。 我的代码:

<ion-content>
    <iframe width="300px" height="325px" frameborder="0" scrolling="yes" marginwidth="0" marginheight="0" ng-attr-srcdoc="{{model.html}}">
    </iframe>
</ion-content> 

iframe不受IOS通过Cordova 6.4之前版本的支持

cordova的声明是ios不支持iFrame

如果你想在6.4版本之前需要类似iframe的东西,你必须自己构建它,即作为文本区域或带有滚动的嵌入式部分


如果您使用的是6.4或更高版本,请查看以下响应。

iframe不受IOS通过Cordova 6.4之前版本的支持

cordova的声明是ios不支持iFrame

如果你想在6.4版本之前需要类似iframe的东西,你必须自己构建它,即作为文本区域或带有滚动的嵌入式部分


如果您使用的是6.4或更高版本,请查看以下响应。

默认Cordova行为会阻止使用srcdoc的iFrame显示内容。要覆盖此代码,请在MainViewController.m中添加以下代码(自Cordova v6.2.0起有效):


默认Cordova行为会阻止使用srcdoc的iFrame显示内容。要覆盖此代码,请在MainViewController.m中添加以下代码(自Cordova v6.2.0起有效):


问题是,默认情况下,Cordova不支持srcdoc。Cordova最新版本的解决方案很简单。编辑项目的config.xml并添加:

<allow-navigation href="about:*" />

我已经在Cordova 6.4.0上对此进行了测试,它解决了这个问题:它允许带有iFrame的Cordova应用程序使用srcdoc


(接受的答案不正确。iOS支持iFrame很好。marshall119us的答案对于Cordova的早期版本是可以的,但已经过时。)

问题是,默认情况下,Cordova不支持srcdoc。Cordova最新版本的解决方案很简单。编辑项目的config.xml并添加:

<allow-navigation href="about:*" />

我已经在Cordova 6.4.0上对此进行了测试,它解决了这个问题:它允许带有iFrame的Cordova应用程序使用srcdoc



(接受的答案是不正确的。iOS支持iframes很好。marshall119us的答案对于早期版本的Cordova是可以的,但已经过时了。)

我的问题是,我最近重新测试了手机,将其重置为出厂设置。我必须更新我的应用程序我的应用程序。

我的问题是,我最近重新测试了我的手机,将其重置为出厂设置。我必须更新我的应用程序我的应用程序。

我明白了,你能给我一个提示吗?如果不使用iframe,使用cordova显示网页是最好的技术。我的网页以如下内容开头:----函数验证(){…所以我认为外部网页应该标记为外部,通常你只需要一个指向它的链接。如果你想在没有应用程序强制进入后台的情况下打开它,请在应用浏览器中查看cordova。这个答案在两个层面上是不正确的。首先,iOS支持iFrame很好。这个问题是cordova特有的,并且是相关的d到srcdoc属性的使用。查看我的答案了解真正的解决方案。是的,它在cordova 6.4中得到了修复,但我必须使用5.x,因为旧的android手机无法更新。它不起作用。目前我写的答案不起作用。cordova的官方声明“是”ios不支持iframe。我明白了,你能给我一个提示吗?如果不支持iframe,那么使用cordova显示网页的最佳技术是什么?我的网页以如下内容开头:-函数验证(){…所以我认为外部网页应该标记为外部,通常你只需要一个指向它的链接。如果你想在没有应用程序强制进入后台的情况下打开它,请在应用浏览器中查看cordova。这个答案在两个层面上是不正确的。首先,iOS支持iFrame很好。这个问题是cordova特有的,并且是相关的d到srcdoc属性的使用。查看我的答案了解真正的解决方案。是的,它在cordova 6.4中得到了修复,但我必须使用5.x,因为旧的android手机无法更新。它不起作用。目前我写的答案不起作用。cordova的官方声明“是”该ios不支持iFrame。虽然此链接可以回答问题,但最好在此处包含答案的基本部分并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。-@Liam更新了答案以包含相关代码-感谢您的建议!请注意,已接受的答案位于正确,因为iOS确实支持iFrames。投票人是否有可能对他们的理由发表评论?现在答案已经完全充实,我很想恢复代表分数。:@Liam-我是发布答案的新手,我很好奇1)为什么建议删除答案,2)既然答案是upd,是否可以取消投票已收到请求的信息。感谢您的帮助。建议删除(不是我)因为你的答案只是一个链接。否决票可以重新提交,但只能由否决票的人重新提交。这很不寻常,我没有这样做。所以你可能太晚了。为了避免否决票等。阅读所有的链接,并遵循其中的指南。虽然此链接可能回答问题,但最好在此处包含答案的基本部分,然后在此处发布提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会无效。-@Liam更新了答案以包含相关代码-感谢您的建议!请注意,接受的答案不正确,因为iOS支持iFrame。downvoter是否有可能对他们的推理留下评论?希望恢复代表分数now:答案是完全充实的。:@Liam-我是一个发布答案的新手,我很好奇1)为什么建议删除答案,2)由于答案更新了请求的信息,是否可以取消否决票。感谢帮助。建议删除