2016-03-17 26 views
0

我想通過從適配器獲取所有消息來定製直接更新。 如果直接更新被觸發,我沒有獲得適配器成功回調。 我想顯示一個對話框給用戶選項以取消直接更新。 下面是我,試圖代碼:MobileFirst直接更新使用適配器定製

wl_directUpdateChallengeHandler.handleDirectUpdate = function (directUpdateData,directUpdateContext){ 
    console.log("Test for directUpdate"); 
    var invocationData = { 
      adapter : 'DirectUpdateCustomizationAdapter', 
      procedure : 'getConfig', 
      parameters : ["android","1.9.0"] 
     }; 
    var result = WL.Client.invokeProcedure(invocationData,{timeout: 30000, 
     onSuccess : function(success){ 
      console.log("Adapter call success" + JSON.stringify(success)); 
     }, 
     onFailure : function(failure){alert(3);console.log("Adapter call fail" + JSON.stringify(failure));}, 
    }); 

}; 

我使用下面的安全測試:

<customSecurityTest name="customTests"> 
      <test realm="wl_antiXSRFRealm" step="1"/> 
      <test realm="wl_authenticityRealm" step="1"/> 
      <test realm="wl_remoteDisableRealm" step="1"/> 
      <test realm="wl_directUpdateRealm" mode="perSession" step="1"/> 
      <test realm="wl_anonymousUserRealm" isInternalUserID="true" step="1"/> 
      <test realm="wl_deviceNoProvisioningRealm" isInternalDeviceID="true" step="2"/> 
     </customSecurityTest> 

如果直接更新不會被觸發和轉接呼叫之外挑戰處理機然後轉接呼叫成功。

請指導。

回答

0

直接更新與適配器有什麼關係?

您不能在適配器中調用或處理它;它必須在客戶端處理,因爲它是處理直接更新的客戶端SDK,而不是駐留在服務器端的適配器。

+0

Idan,我在main.js客戶端調用直接更新質詢處理程序中的適配器。調用適配器的原因是爲了獲取可配置的消息以直接更新自定義顯示。一旦我收到來自適配器的消息,我將調用directUpdateContext.start(directUpdateCustomListener);我遇到的問題是,我從來沒有得到適配器回調。 – Shruti

+0

只是想補充一點,我配置直接更新彈出消息,並從適配器獲取標題,標題,按鈕文本等。 – Shruti

+0

Direct Update是否阻止適配器調用? – Shruti

0

要使這種流動起作用,必須從任何安全性中去除DirectUpdateCustomizationAdapter#getConfig方法,並使用不受保護的訪問。 含義:在DirectUpdateCustomizationAdapter適配器的XML文件 方法getConfig應該有一個附加屬性:

<procedure name="getConfig" securityTest="wl_unprotected" /> 

因爲getConfig返回非機密數據,我相信它的確定,未將其固定。 適配器代碼中的這種更改需要將適配器文件重新部署到Worklight服務器。

不過,不建議在直接更新處理程序期間從遠程服務器檢索數據。正如Idan在這裏所說的那樣,定製標題,正文和其他文本元素的最佳方法實際上是在設備上的某些屬性文件中使用這些字符串(網絡躍點花費時間)。 用新文本更新這樣的屬性文件可以通過直接更新機制本身來完成(就像更新任何其他web資源一樣)。

+0

感謝您的響應在爲適配器過程添加securityTest =「wl_unprotected」之後,仍然無法獲得適配器成功回調。 直接更新阻止了適配器調用/成功回調嗎? – Shruti