すべてのデスクトップ ブラウザーとモバイル デバイスで正常に動作する Web アプリケーションがありますが、IOS 7 以降、奇妙な問題が発生しています。
例:
私は次のようなオブジェクトを設定しています
(function(){
//CONSTRUCTOR*
sampleObject= new function(){
alert("loaded constructor "+ new Date().getTime()); //only outputted once
//swfobject dom load event
}
...//functions and propeties related to sampleObject
})();
//ASSIGNING THE OBJECT
sampleObject = new sampleObject();
alert("finished assigning object "+ new Date().getTime()); //only outputted once
問題:
iOS 7 では、sampleObject がランダムに失われ、代わりにコンストラクター* を使用してスニペット内にあるものに戻ります。たとえば、sampleObject.getResource("a"); などのオブジェクトのパブリック メソッドを呼び出している間隔でデバッグを行っています。
そして、トレースは次のように戻ってきます:
sampleObject = [Object] //Correct
sampleObject = [Object]
そして、ランダムにこれを行います:
sampleObject = function(){
//swfobject dom load event
}
これは基本的にコンストラクター内のコードです*。
これにより、getResource など全体で使用しているパブリック プロパティ/メソッドが定義されていないため、コードで参照エラーがスローされます...
試したこと:
- コードは 1 回だけ開始されます (単一の日付/ランダムな文字列でアラートが 1 回発生します)
- この問題が原因でエラーが発生した場所を特定し、try/catch をラップしましたが、コードは明らかに失敗していますが、catch には入っていません。
- さまざまな IOS バージョンで試してみましたが、IOS 7 以外はすべて問題ありません
*コンストラクター - これがコンストラクターとして分類されているかどうかはわかりませんが、それは私には思えます。
**残念ながら、商用プロジェクトの一部であり、非常に広範囲であるため、コードを公開することはできません..しかし、提案や誰かに同様の問題がありましたか?
ありがとう!