2016-08-26 15 views
0

我想在我的離子應用程序中顯示一個iframe,但不知何故,它出現在瀏覽器上,但它不出現在iOS設備上。我想用html代碼填充它。 我的代碼:科爾多瓦iframe與HTML內沒有顯示在iOS設備上

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

回答

0

iframe的iOS不經科爾多瓦6.4以前正確支持。

cordova的聲明是ios不支持iframe。

如果你想在6.4之前需要類似iframe的東西,你必須自己構建它,例如作爲textarea或者帶有滾動的嵌入部分。

如果您使用6.4或更高版本,請查看以下回復。

+0

我明白了,你可以給我一個提示至極是最好的techique顯示一個網頁與科爾多瓦,如果不與iframe。我的網頁開始類似於:<!DOCTYPE html PUBLIC「---」> ---

1

默認Cordova行爲會阻止使用srcdoc顯示內容的iframe。

- (BOOL)webView:(UIWebView*)theWebView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL* url = [request URL]; 

    if ([[url scheme] isEqualToString:@"about"]) { 
     return YES; 
    } else { 
      return [super webView:theWebView shouldStartLoadWithRequest:request navigationType:navigationType]; 
    } 
} 

https://issues.apache.org/jira/browse/CB-7379

+0

雖然這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/13982181) – Liam

+0

@Liam更新的答案包括相關的代碼 - 謝謝你的建議!請注意,由於iOS支持iFrame,因此接受的答案不正確。 – marshall119us

+0

任何機會downvoter可以發表評論他們的推理?現在很樂意恢復代表點,答案完全充實。 :) – marshall119us

2

的問題是,默認情況下,科爾多瓦沒有:通過添加以下代碼(如科爾多瓦V6.2.0有效)覆蓋此特殊情況下,它在你的MainViewController.m支持srcdoc。最近版本的Cordova解決方案很簡單。編輯config.xml中的項目並添加:

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

我已經測試了這個在科爾多瓦6.4.0,並修復該問題:它允許科爾多瓦藉助iframe使用srcdoc應用程序。

(接受的答案是不正確。IOS支持iFrame的就好了。marshall119us的答案是確定的科爾多瓦的早期版本,但已經過時了。)

+0

你在android設備上測試過嗎?我有問題 – mtizziani

+0

恐怕我只在iOS上測試過。我將盡快處理Android,因此,如果您找出正確的解決方案,請告訴我們! :) – logidelic

+0

@mtizziani最後我可以報告,這也適用於Android。 – logidelic

相關問題