2016-01-06 12 views
0

在我們公司,我們使用Outsystems作爲開發平臺。 Outsystems提供了一個Outsystems Now原生應用程序,該應用程序作爲具有設備本機功能的瀏覽器運行。Cordova:我怎樣才能將操作從webview頁面傳遞到cordova框架(本地)

我們只在網絡服務器上開發網頁。我們有來自Outsystems Now應用程序的源代碼,所以我們可以編輯框架。

感謝源代碼,我看到它使用Cordova/Phonegap作爲接口。

我想創建的是來自觸發Outsystems Now(Cordova/Phonegap)應用程序中的操作的網頁的操作。例如,頁面上的註銷按鈕關閉會話,但Cordova webview不知道。

任何使用Cordova/Phonegap創建此類操作的經驗?

回答

2

正如您所述,OutSystems Now現在基於Cordova,因此您可以輕鬆地爲其創建插件,並且在整個互聯網中都有很好的文檔記錄。 對於此答案,可以說我創建了一個名爲LogoutPlugin的插件並且可用的方法是logout

對於web應用程序和現在OutSystems應用程序之間的通信,可以嘗試以下方法:

  • 從鍛造安裝OutSystems現在 - 你OutSystems移動應用程序連接我們的環境需要。
  • 立即安裝從僞造的常見插件 - 需要從OutSystems Now應用程序加載cordova JavaScript文件。

現在,您可以:

  1. 在服務工作室,並在您的應用程序,添加引用「現在插件共同
  2. 添加參考HTTPRequestHandler/RunJavaScript
  3. 創建webblock和阻力,從現在插件的NativePluginLoader和一個按鈕。
    • 更改按鈕方法爲ajax提交併創建一個新的屏幕操作,我cal led礦「註銷」
  4. 打開「註銷」屏幕動作並將RunJavaScript動作拖入其中。這將是我們要稱之爲我們想要的科爾多瓦插件的地方!因爲,在這個答案的開始,我說我創造LogoutPlugin,我們會叫它像這樣:

    cordova.exec(function(){console.log("success");}, function(e){console.log("fail" + e);}, "LogoutPlugin", "logOut", []);

在本機端,例如用於Android,這個插件類看起來會是像下面這樣:

public class LogoutPlugin extends CordovaPlugin { 

    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { 

     if (action.equals("logout")) 
      logout(); 
     return true; 
    } 

    private void logout() { 
     cordova.getActivity().finish(); 
    } 
} 

注:cordova將只提供,如果你正在運行現在OutSystems內的Web應用程序,否則NativePluginLoader將無法​​從設備加載cordova.js文件。

進一步學習,你可以看看OutSystems github上回購在那裏你可以找到OutSystems現在一些插件..

希望這將讓你去也,here's an oml as an example

+0

@ρss你絕對正確!更新的答案與更多信息 –