1

Rhomobile フレームワーク/Rhodes (Ruby と JqueryMobile の組み合わせ) を使用してモバイル アプリを開発しています。

エミュレーターのデスクトップでアプリケーションをビルドしてテストすると、リンクをクリックすると関連するページが読み込まれます。しかし、モバイル デバイスで同じリンクにアクセスしようとすると、「ページの読み込み中にエラーが発生しました」というメッセージが表示されます。

jquerymobile/ruby/rhomobile を使用した経験があり、エミュレーターとモバイル デバイスの間に不一致がある理由を知っている方がいらっしゃいましたら、お知らせください。以下に追加情報を記載しました。さらに役立つ情報がありましたら、お知らせください。

関連するページが 2 つあります。インデックス ページは、ハイパーリンクされた項目のリストを読み込みます。2 番目のページは、アイテムがクリックされるたびに呼び出され、クリックされたアイテムに基づいてコンテンツをロードします。インデックスページのコードは次のとおりです。

  <script type="text/javascript">
$(document).ready(function () {
   var fploadcounter =0;
 fpLoadIncidents(fploadcounter);
  $('#fpitems').listview('refresh');
 });
  function fpLoadIncidents(start, buttonname){
    $('.fpitem').remove();
    $('#fpnothing').hide();
    $('.fpitemdetailcontainer').remove();
    $('#itemsloading').show();

    var fpurl='data.json';
      $.ajax( {
            dataType:"json",
            url: fpurl,
            async:false,
            error: function(x,e,y) {

            alert("There is an issue with the incident application. You can provide the following information to the admin: "+e+" "+x+" "+y+" "+x.status());
  },
        success: function(data){
             if (data.d==''){
 $('#itemsloading').hide(); 
  $('#fpnothing').show();
             }else { 
               fphtmlstring='';
               fpdetailstring='';
                 $.each(data.d, function(event) {
                       var fpdate1=this.EVENT_OCCURRED_2.substr(6,2);
                       var fpdate2=this.EVENT_OCCURRED_2.substr(4,2);
                       var fpdate3=this.EVENT_OCCURRED_2.substr(0,4);
                       var fpoccurreddate=fpdate1+'/'+fpdate2+'/'+fpdate3;
                       if ((this.RISK_RANKING=='N/A')||(this.RISK_RANKING==null)) {
                           var fprisk='-';
                        } else {
                             var fprisk=this.RISK_RANKING;
                        }

                        if (this.HIGHEST_SEVERITY==null) {
                             var fpseverity='-';
                        }else {
                             var fpseverity = this.HIGHEST_SEVERITY;
                         }

                    fphtmlstring=fphtmlstring+'<li>';
                    fphtmlstring= fphtmlstring+ '<a class="itemlink" href="itemcontent.erb" filter="'+this.EVENT_+'">';
                    fphtmlstring= fphtmlstring+ '<div class=" ui-li-count">'+fprisk+'</div>';
                    fphtmlstring= fphtmlstring+ '<h3>'+this.EVENT_TYPE_NAME+'</h3>';
                    fphtmlstring= fphtmlstring+ '<p>'+fpseverity+'</p>';
                    fphtmlstring= fphtmlstring+ '<p class="ui-li-aside myaside">'+fpoccurreddate+'<br />'+this.STATUS_NAME+'</p></a></li>';
                    $('#itemsloading').hide();
                });
                         $('#fpitems').append(fphtmlstring);
        }//the end of the if function
   },
     complete: function() {
       $('.itemlink').click(function() {
         itemid=$(this).attr('filter');
       });
       $('#fpitems').listview('refresh');
     }
                           });
}
</script>
<style>
.myaside {
width: 30%;  

}
.hidden {
 display:none;
}
.ui-li-static{
  background-color: white;

}
</style>

<div data-role="page" id="incidents" data-url="<%= Rho::RhoConfig.start_path %>/" >

<div data-role="header" data-position="inline"  data-theme="b">
<h1>Latest Incidents</h1>
<%= link_to "Settings", :controller => :Settings %>
<%= link_to "Logout", :controller => :Settings, :action => :logout %>
</div>

<div data-role="content">
 <ul id="fpitems" data-role="listview" data-theme="d" data-count-theme="b">
 </ul>
</div>
</div>

コンテンツページのコードは次のとおりです。

<div data-role="page" id="incidentdetails" data-url="<%= Rho::RhoConfig.start_path %>/" data-add-back-btn="true" data-theme="b" data-content-theme="b">
 <script type="text/javascript">

$( document ).delegate("#incidentdetails", "pagebeforecreate", function() {

 fpLoadIncidentdetail();

});

function fpLoadIncidentdetail(){
 $('#incidentdetails').html('');
     var fpurl='data.json';

           $.ajax( {
                 dataType:"json",
                 url: fpurl,
                 async:false,
                 error: function(x,e,y) {

                 alert("There is an issue with the incident application. You can provide the following information to the admin: "+e+" "+x+" "+y+" "+x.status());

       },
             success: function(data){
                  if (data.d==''){
      $('#itemsloading').hide(); 
       $('#fpnothing').show();


                  }else { 
                    fphtmlstring='';
                    fpdetailstring='';
                      $.each(data.d, function(event) {


           if (itemid==this.EVENT_){

                            var fpdate1=this.EVENT_OCCURRED_2.substr(6,2);
                            var fpdate2=this.EVENT_OCCURRED_2.substr(4,2);
                            var fpdate3=this.EVENT_OCCURRED_2.substr(0,4);
                            var fpoccurreddate=fpdate1+'/'+fpdate2+'/'+fpdate3;

                            if ((this.RISK_RANKING=='N/A')||(this.RISK_RANKING==null))     {
                                var fprisk='-';
                             } else {
                                  var fprisk=this.RISK_RANKING;
                             }

                             if (this.HIGHEST_SEVERITY==null) {
                                  var fpseverity='-';
                             }else {
                                  var fpseverity = this.HIGHEST_SEVERITY;
                              }

                         fpdetailstring=fpdetailstring+'<div data-role="header" data-position="inline" data-theme="b">';
                         fpdetailstring=fpdetailstring+'<h1 id="incident-title">Incident: '+this.EVENT_TYPE_NAME+'</h1>';
                         fpdetailstring=fpdetailstring+'</div> <div data-role="content" id="fpitemdetailscroll">';
                         fpdetailstring=fpdetailstring+'<div class="fpitemdetailcontainer" id="'+this.EVENT_+'">';
                         fpdetailstring=fpdetailstring+'<h2>'+this.EVENT_TYPE_NAME+'</h2>';
                         fpdetailstring=fpdetailstring+'<div data-content-theme="d"><h3>Details</h3>';
                         fpdetailstring=fpdetailstring+'<ul data-role="listview" class="incident-details" data-theme="d">';
                         fpdetailstring=fpdetailstring+'<li>Occurred: '+fpoccurreddate+'</li>';
                         fpdetailstring=fpdetailstring+'<li>Location: '+this.LOCATION_NAME+'</li>';
                         fpdetailstring=fpdetailstring+'<li>Business Unit: '+this.BUSINESS_UNIT_NAME+'</li>';
                         fpdetailstring=fpdetailstring+'<li>Risk Ranking: '+this.RISK_RANKING+'</li>';
                         fpdetailstring=fpdetailstring+'<li>Highest Severity: '+fpseverity+'</li></ul></div>';
                         fpdetailstring=fpdetailstring+'<div><h3>Description</h3> '+this.BRIEF_DESCRIPTION_2+'</div>';
                         fpdetailstring=fpdetailstring+'<div><h3>Immediate Actions Taken</h3> '+this.IMMEDIATE_ACTIONS_TAKEN+'</div></div></div>';
                                     }
                     });

                     $('#incidentdetails').append(fpdetailstring);
                                      }//the end of the iff function
        }
                                });
           }
  </script>
                </div>
4

1 に答える 1

0

ログは通常、何が問題なのかを適切に示します。

アプリケーション ログを確認します。Android では、 をクリックしますSettings > Log

デバッグを有効にして、デバイスをコンピューターに接続したままにして、adb を介してログを実行します。

また、Rhodes アプリケーションで十分に詳細なログが設定されていることを確認してください。開いて、 (少なくとも、または 0) でrhoconfig.txtあることを確認します。MinSeverity = 1

于 2011-12-21T14:25:05.403 に答える