私はMonaca/Cordova/OnsenUIとIframeを使用しています。私はこれを最後の4日間スムーズに動かそうとしています。Monaca(コルドバ)iframe =非常にバグ?
目的は、Iframeを持つMonacaで簡単なアプリケーションを作成することでした。そしてiframeにウェブサイトを表示します。だから、ネイティブアプリケーションのように感じるだろうが、実際にはカスタムツールバーが追加されたWebブラウザに過ぎません。
私の問題は、次のとおりです。
- のiframeのコンテンツ読み込み速度は、デフォルトのモバイルSafariブラウザに比べて、非常に遅いです。
- ナビゲーション(スクロール、リンクをクリック)は非常にバグがあり、時にはうまくいきません。
コード:
のindex.html:style.cssには
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no">
<script src="components/loader.js"></script>
<link rel="stylesheet" href="components/loader.css">
<link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
<link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
<link rel="stylesheet" href="css/style.css"-->
<script>
$(function()
{
$('#iframe').load(function()
{
var phoneWidth = $(window).width();
$('#iframe').contents().find('html').css("max-width", phoneWidth);
});
});
</script>
<script>
$(function()
{ // Hide iframe while loading
$('#loader').show();
$('#iframe').hide();
$('#iframe').load(function(){
// If logged in -> go to home page
if ($('#iframe').attr("src") == "https://world-switch.com/komaki/mypage/" && $('#iframe').contents().find('#wrapper').length == 0){ // logged in
$('#iframe').attr("src","https://world-switch.com/komaki/");
}else{
// set size iframe content: forces mobile styling
var phoneWidth = $(window).width();
$('#iframe').contents().find('html').css("max-width", phoneWidth);
$('#iframe').contents().find('#hLogoCenter').attr("class", "vhidden");
$('#iframe').show(); // show iframe
$('#loader').hide(); // hides loading icon
navigator.splashscreen.hide(); // hides splash screen
}
});
});
function fnSetURL(url){
$('#loader').show();
$('#iframe').attr("src",url);
$('#iframe').hide();
}
</script>
</head>
<body>
<!-- Transparent Top toolbar -->
<div class="navigation-bar navigation-bar--transparent">
<div class="navigation-bar__left"></div>
<div class="navigation-bar__center"></div>
<div class="navigation-bar__right"></div>
</div>
<div id="iframe_mask">
<div id="loader">
<i class="fa fa-refresh fa-spin fa-2x fa-fw"></i>
</div>
<iframe id="iframe" src="https://world-switch.com/komaki/mypage/" height="100%" width="100%"></iframe>
</div>
<!-- Bottom tab bar -->
<div class="tab-bar tab-bar--top-border">
<label class="tab-bar__item">
<input type="radio" id="0" name="top-tab-bar-b" onClick="fnSetURL('https://world-switch.com/komaki/');">
<button class="tab-bar__button tab-bar--top-border__button">
<span><i class="fa fa-home" aria-hidden="true"></i></span>
</button>
</label>
<label class="tab-bar__item tab-bar--top-border__item">
<input type="radio" id="1" name="top-tab-bar-b" onClick="fnSetURL('https://world-switch.com/komaki/products/list.php');">
<button class="tab-bar__button tab-bar--top-border__button">
<span><i class="fa fa-search" aria-hidden="true"></i></span>
</button>
</label>
<label class="tab-bar__item tab-bar--top-border__item">
<input type="radio" id="2" name="top-tab-bar-b" onClick="fnSetURL('https://world-switch.com/komaki/products/genre.php?ctg=brand&clm=2');">
<button class="tab-bar__button tab-bar--top-border__button">
<span><i class="fa fa-folder-open-o" aria-hidden="true"></i></span>
</button>
</label>
<label class="tab-bar__item tab-bar--top-border__item">
<input type="radio" id="3" name="top-tab-bar-b" onClick="fnSetURL('https://world-switch.com/komaki/mypage/favorite.php');">
<button class="tab-bar__button tab-bar--top-border__button">
<span><i class="fa fa-heart" aria-hidden="true"></i></span>
</button>
</label>
</div>
</body>
</html>
:
/**/
html,body
{
width:100%;
height:100%;
padding:0;
margin:0;
}
iframe
{
padding:0;
margin:0;
border:0;
}
#iframe_mask {
height:calc(100% - 49px);
width:100%;
-webkit-overflow-scrolling: touch;
overflow-y: scroll;
}
#loader{
position: absolute;
left: 45%;
top: 48%;
z-index: 9999;
}
.navigation-bar{
background: url('https://world-switch.com/komaki/user_data/packages/kyoto-komaki.jp/default/img/header_logo_m.png') #000 no-repeat 50% 50%;
background-size: 120px;
color:#fff;
}
.tab-bar{
background-color: #000;
}
:checked + .tab-bar__button {
color: #fff;
}
:checked + .tab-bar--top-border__button {
border-bottom-color: #fff;
}
のconfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" id="com.example.helloworld" version="1.0.0">
<name>Minimum Template</name>
<description></description>
<author></author>
<content src="index.html" />
<access origin="*"/>
<allow-navigation href="*" />
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
<preference name="DisallowOverscroll" value="true"/>
<preference name="Orientation" value="default"/>
<preference name="loglevel" value="DEBUG" />
<preference name="AndroidLaunchMode" value="singleTop" />
<preference name="ErrorUrl" value=""/>
<preference name="Fullscreen" value="false"/>
<preference name="KeepRunning" value="true"/>
<preference name="SplashScreen" value="screen"/>
<preference name="SplashScreenDelay" value="1000"/>
<preference name="AllowInlineMediaPlayback" value="false" />
<preference name="AutoHideSplashScreen" value="true" />
<preference name="BackupWebStorage" value="cloud" />
<preference name="EnableViewportScale" value="false" />
<preference name="FadeSplashScreen" value="true" />
<preference name="FadeSplashScreenDuration" value=".25" />
<preference name="KeyboardDisplayRequiresUserAction" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />
<preference name="ShowSplashScreenSpinner" value="false" />
<preference name="SuppressesIncrementalRendering" value="false" />
<preference name="TopActivityIndicator" value="gray" />
<preference name="GapBetweenPages" value="0" />
<preference name="PageLength" value="0" />
<preference name="PaginationBreakingMode" value="page" />
<preference name="PaginationMode" value="unpaginated" />
<feature name="LocalStorage">
<param name="ios-package" value="CDVLocalStorage" />
</feature>
<preference name="UIWebViewDecelerationSpeed" value="normal" />
<preference name="monaca:AndroidIsPackageNameSeparate" value="false"/>
<preference name="monaca:targetFamilyiPhone" value="1"/>
<preference name="monaca:targetFamilyiPad" value="1"/>
</widget>
インストールコンプonents:= 2.0.3コルドバを有効
版モナカコアユーティリティ
- コルドバ(PhoneGapの)ローダ版= 2.0.4
- jQueryの(モナカ版)プラグイン:
- InAppBrowser
- モナカプラグイン
- スプラッシュスクリーン
- ステータスバー
- 私はこのテンプレートから開始
ホワイトリスト:(温泉UI v2の+ JavaScriptのタブバー)
私は
- 温泉UI V2 JSタブバーiOS用Monaca Debuggerアプリケーションを使用してiphone6でWi-Fiをテストする
ご協力いただきありがとうございます。