1

私はBackbone、jQueryMobile、Phonegapを使ってモバイルアプリケーションを開発しています。このアプリはAndroid、iOS、BB> = 6でうまくいきますが、期待通りにBB5には数多くの問題が発生しています。BlackBerry OS5のバックボーン - 可能でしょうか?

私は今、バックボーン自体の問題に直面しています。私はそれをデバッグしていると問題がルート定義にあるように見えます。関連する何らかの理由でアプリケーションが起動時にクラッシュします(まだ調査中ですが、デバッグはBB5にとっては苦労しています...)。

また、BB5はハッシュリスニングでうまくいきませんが、Backboneはナビゲーションに依存しているので、誰かがOS5でバックボーンアプリを作成できたのか、それとも簡単ではないのでしょうか可能?

答えて

2

私は、誰かが同じ問題に直面しているだけの場合には、この質問を更新しています:

ショートストーリー:それはOS5でバックボーンを実行することはできません。私はバックボーンにデバッグし、正規表現でいくつかの指示がクラッシュを引き起こしていました。これらが将来修正されたとしても、jsのサポートが不十分で、最終的にOS5バージョンを破棄したと判断しました。

0

ほとんどの場合はそれほど価値はありませんが、これは実行可能です。

かなりの作業の後にアプリを稼働させることができました.bfcapellの答えに示されているように、javascriptのサポートはOS 5.0では本当に素晴らしいものではなく、デバッグは非常に遅いです。

バックボーンを機能させるには、urchangeの変更を処理するためにhashchangeイベントを使用するコードをコメントアウトする必要があります(これは、ルータが使用されていることを前提としています)。これは、setintervalを使用して変更をポーリングするバックボーンのフォールバックです。

// Depending on whether we're using pushState or hashes, and whether 
// 'onhashchange' is supported, determine how we check the URL state. 
/*if (this._hasPushState) 
{ 
    alert('pushstate'); 
    $(window).bind('popstate', this.checkUrl); 
} else if (this._wantsHashChange && ('onhashchange' in window) && !oldIE) 
{ 
    alert('hashchange'); 
    $(window).bind('hashchange', this.checkUrl); 
} else if (this._wantsHashChange) 
{*/ 
    this._checkUrlInterval = setInterval(this.checkUrl, this.interval); 
//} 

アンダースコアのforeachメソッドも、ネイティブforeachメソッドを使用しないように変更する必要があります。これは、コレクションが正しく表示されるために必要です。

var each = _.each = _.forEach = function (obj, iterator, context) 
{ 
    if (obj == null) return; 

    /*if (nativeForEach && obj.forEach === nativeForEach) 
    { 
     obj.forEach(iterator, context); 
    } 
    else*/ 
    if (obj.length === +obj.length) 

上記は、少なくともバックボーンがほとんど機能している必要があります。 (私は主に、私は完全に動作しているアプリケーションを持っていると言いますが、OS5特有の問題が2つ以上見つかると思います)。

関連する問題