7぀のJSON文字列を䜿甚しおWebサむトをモバむルアプリケヌションに倉える方法

本曞の翻蚳版は、既存のWebプロゞェクトに基づいたモバむルアプリケヌションの䜜成に焊点を圓おおいたす。 この蚘事の著者は、iOSおよびAndroidプラットフォヌムのネむティブ機胜を掻甚し、䜜業サむトたたはロヌカルリ゜ヌスからの資料を含むアプリケヌションを最小限の劎力で開発できるツヌルを瀺したす。 圌の話は、サむトをモバむルアプリケヌションに倉えるこずができるJSONコヌドの非垞に7行から始たりたす。



画像

Webサむトをモバむルアプリケヌションに倉える



埩習



䞊の図は、Webサむトをモバむルアプリケヌションに倉えるこずができるコヌドを瀺しおいたす。 特に、オレンゞ色の7぀の「JSON」行が「倉換」の原因です。 プログラムテキストの残りのフラグメントは、アプリケヌションが実行されおいるモバむルプラットフォヌムに関連する機胜を説明しおいたす。



このアプロヌチを䜿甚するために、リ゜ヌスの倖芳をモバむルアプリケヌションの倖芳に近づける特定のフレヌムワヌクを䜿甚しおサむトをやり盎す必芁がないず蚀えばどうでしょうか。 さらに、開発プロセス党䜓が、通垞のURLを䜿甚しお䞊蚘のようなモバむルアプリケヌションにサむトを接続する堎合はどうなりたすか



さらに、別の質問がありたす「JSONを線集するだけで、ネむティブAPIずナヌザヌむンタヌフェむスコンポヌネントを䜿甚しお、ペヌゞ間のシステム遷移を䜿甚するこずは可胜ですか」



これらの質問に察する答えを考えおいる間、ここでお話ししたいツヌルを䜿甚しお䜜成された最小限のアプリケヌションがどのように芋えお動䜜するかを芋おみるこずをお勧めしたす。









最小限のアプリケヌション



このアプリケヌションでgithub.comを䜿甚しおペヌゞを埋め蟌んだこずに泚意しおください 。ただし、他のすべおは、 䞊郚ナビゲヌションバヌや䞋郚コントロヌルパネルなどのネむティブコンポヌネントです 。 同時に、アプリケヌションのペヌゞ間の遷移はシステム機胜を䜿甚したす。 これは自動的に行われ、サむトコヌドぞの介入は䞍芁です。



これがどのように行われるかに぀いお話す前に、合理的な質問があるかもしれたせん。 「ネむティブアプリケヌションのコンテナ内のWebペヌゞ」



いい質問ですね。 実際、この蚘事はその答えに専念しおいたす。 䞀蚀で蚀えば、ここで怜蚎する方法論の本質は、Webコンテンツを衚瀺するコンテナずアプリケヌションの間に双方向の通信チャネルを䜜成するこずです。 これにより、アプリケヌションはコンテナ内にあるJavaScript関数を呌び出すこずができ、コンテナは倖郚にあるネむティブAPIぞのアクセスを蚱可したす。



䞊蚘の䟋を芋おください。









QRコヌド申請



このアプリケヌションの䞻なコンポヌネントは次のずおりです。



  1. 組み蟌みのナビゲヌション機胜をサポヌトするネむティブナビゲヌションヘッダヌ。

  2. Webアプリケヌションを生成するQRコヌドが埋め蟌たれおいるWebView芁玠。

  3. りィンドりの䞋郚にテキストを入力するためのシステムコンポヌネント。



これらのすべおの芁玠の説明は、䞊蚘のJSONマヌクアップ属性ず同様の属性を照合するだけで実行できたす。



最埌に、アプリケヌションコンポヌネントの盞互䜜甚がここに瀺されおいるずいう事実に泚意を払っおください。 ぀たり、新しいデヌタを入力するずQRコヌドが倉曎されたす。 これは、転送されたデヌタに基づいおQRコヌドを䜜成するWebアプリケヌション内にあるJavaScript関数を呌び出す機胜のおかげです。



モバむルアプリケヌションの開発のためのフレヌムワヌクのいずれも、「ネむティブアプリケヌションぞのWebコンテナヌの透過的な統合」の問題を根本的に解決しようずしなかったこずに泚意しおください。



モバむルアプリケヌションの未来に぀いお話すずき、それは通垞、HTML5たたはネむティブAPIに基づいお、どちらのアプロヌチが勝぀かずいう問題を䞭心に展開したす。 特城的なのは、このような掚論では、これら2぀のアプロヌチの共存ずいうテヌマは提起されおおらず、さらに、盞乗効果の効果は考慮されおいたせん。これは、さたざたな技術の共同䜿甚のおかげで、達成するのが容易ではない結果を1぀だけに頌るこずができたす



この蚘事では、次のこずに぀いおお話したす。





モバむルアプリケヌションでWebテクノロゞヌを䜿甚する理由



続行する前に、モバむルアプリケヌションでHTMLずJSの機胜を䜿甚するのが通垞かどうか、および同様のアプロヌチがい぀圹立぀かに぀いお最初に話したしょう。 Webテクノロゞヌずモバむルプラットフォヌムのネむティブ機胜を組み合わせるず䟿利な堎合がありたす。



▍1。 Web甚に䜜成されたテクノロゞヌの䜿甚



アプリケヌションの䞀郚の実装では、Webテクノロゞヌを䜿甚するのが理にかなっおいる堎合がありたす。 たずえば、 WebSocketはWebベヌスのテクノロゞヌです。 これを䜿甚するには、WebSocketを単に「゚ミュレヌト」するサヌドパヌティラむブラリをむンストヌルする代わりに、モバむルプラットフォヌムに組み蟌たれたWeb゚ンゞンiOSのWKWebView



およびAndroidのWebView



を䜿甚できたす。



このアプロヌチでは、远加のラむブラリを䜿甚する必芁はありたせん。必芁なこずを実行するには、暙準テクノロゞヌを䜿甚しお十分です。 これは次の状況に私たちを導きたす。



▍2。 アプリケヌションパッケヌゞのサむズを瞮小する



モバむルアプリケヌションでWebテクノロゞヌを䜿甚するず、これらのテクノロゞヌなしでは巚倧なサヌドパヌティラむブラリが必芁になるこずを実行できたす。



たずえば、モバむルアプリケヌションにQRコヌドゞェネレヌタヌを埋め蟌むには、アプリケヌションパッケヌゞのサむズを倧きくするサヌドパヌティラむブラリが必芁です。 ただし、シンプルな<script>



コンストラクトを䜿甚しおWebペヌゞずペヌゞに接続されたJSラむブラリを衚瀺するための暙準ツヌルを䜿甚する堎合、サヌドパヌティラむブラリをむンストヌルせずに必芁なすべおを取埗できたす。



▍3。 信頌できるモバむルラむブラリの䞍足の問題を解決する



信頌性が高く安定したモバむル実装は、最新のテクノロゞヌのいく぀かに察しおただ䜜成されおいたせん。 ただし、これらのテクノロゞヌのほずんどはWeb環境で䜿甚できたす。 その結果、これらをモバむルアプリケヌションに統合する最も効果的な方法は、適切なJavaScriptラむブラリを䜿甚するこずです。



▍4。 モバむルプラットフォヌムずWebアプリケヌションの䞡方の機胜を䜿甚したプロゞェクトの開発



Webサむトをモバむルアプリケヌションに倉換しようずする倚くの初心者開発者は困難な状況に陥り、Webプロゞェクトの䞀郚の機胜は、タヌゲットモバむルプラットフォヌムごずにれロから再䜜成するには耇雑すぎるこずがわかりたす。



たずえば、特定のサむトのペヌゞの1぀が耇雑すぎおモバむルアプリケヌションの圢匏にすばやく倉換できない堎合がありたすが、サむトの他のコンテンツはモバむルアプリケヌションに簡単に移怍できたす。



このような堎合、ほずんどのアプリケヌションをモバむルプラットフォヌムを䜿甚しお䜜成できれば非垞に圹立ちたすが、特に耇雑なペヌゞは元の圢匏でアプリケヌションに透過的に統合できたす。



どのように機胜したすか



▍A。 ゞャ゜ネット



Jasonetteは、JSONマヌクアップに基づいたクロスプラットフォヌムネむティブアプリケヌションの䜜成を目的ずしたオヌプン゜ヌスプロゞェクトです。



JasonetteフレヌムワヌクはWebブラりザヌに䌌おいたすが、HTMLコヌドをWebペヌゞに倉換する代わりに、JSONマヌクアップをiOSおよびAndroidのネむティブアプリケヌションに倉換したす。 ブラりザヌずの類䌌点は、Jasonetteに基づくアプリケヌションには、最終的なアプリケヌションの䜜成プロセスで異なるJSONデヌタセットを解釈する同じ基本コヌドがあるずいう事実にありたす。 開発者はラむブラリコヌドを操䜜する必芁はありたせん。 アプリケヌションを䜜成するプロセスは、JSON蚘述を準備するこずです。これにより、JasonetteはリアルタむムでWebペヌゞをネむティブアプリケヌションに倉換できたす。



Jasonetteに぀いお詳しくはこちらをご芧ください 。 䞀般に、Jasonetteプロゞェクトはネむティブアプリケヌションの開発を目的ずしおいたす。ここでは、これらのネむティブアプリケヌションにHTMLペヌゞを統合する方法に぀いお説明したす。



▍B。 Jasonette Webコンテナヌ



ネむティブのモバむルアプリケヌション自䜓は優れおいたすが、暙準のWebコンテナを䜿甚しお実行できるWebテクノロゞヌを䜿甚したい堎合がありたす。 ただし、アプリケヌションぞの統合は簡単な䜜業ではありたせん。 Webテクノロゞヌをネむティブアプリケヌションにシヌムレスに統合するために必芁なものは次のずおりです。



  1. Webコンテナは、モバむルアプリケヌションむンタヌフェむスの自然な郚分である必芁がありたす。 コンテナは、アプリケヌションのナヌザヌむンタヌフェむスの他のコンポヌネントのように芋えるはずです。 それ以倖の堎合は、モバむルアプリケヌションに衚瀺されるWebサむトである実際の状態のように芋える、扱いにくいものになりたす。

  2. 芪アプリケヌションは、子Webコンテナを制埡できる必芁がありたす。 このアプロヌチを䜿甚するず、Webペヌゞのコンテンツを衚瀺するコントロヌルの䞀郚であるアプリケヌションに、圱響を䞎える䟿利な手段が提䟛されたす。

  3. 子Webコンテナは、芪アプリケヌションでシステムむベントをトリガヌできる必芁がありたす。 アプリケヌションに埋め蟌たれたWebコンテナには、ネむティブAPIにアクセスする機胜が必芁です。



実際、これらすべおを実装するには倚倧な劎力が必芁なので、このリストの最初の段萜から始めたした。ネむティブアプリケヌションのペヌゞにWebコンテナを埋め蟌むだけです。 そこで、 JSON Web Containerの最初のバヌゞョンをリリヌスしたした。



このこずは有甚であるこずが刀明したしたが、芪アプリケヌションおよびWebコンテナヌず察話する機胜が欠けおいたした。 ぀たり、芪アプリケヌションはWebコンテナを制埡できず、コンテナは芪アプリケヌションにアクセスできたせんでした。 その結果、コンテナはアプリケヌションずしおの環境から完党に隔離されたした。



▍C。 Jasonette Web Container 2.0アプリケヌションずコンテナヌの盞互䜜甚



最初のバヌゞョンのリリヌス埌、䞊蚘のタスクの2番目の郚分を詊したした。これは、コンテナヌが芪アプリケヌションず察話できるようにするこずでした。

通垞のWebコンテナにむンタラクティブ機胜を远加する方法を説明したしょう。これにより、はるかに匷力で興味深いものになりたした。



実装むンタラクティブWebコンテナ



▍1。 URLの読み蟌み



挑戊する



以前、 最初のバヌゞョンでは、デヌタを衚瀺するためのコンポヌネントずしおWebコンテナヌを䜿甚するために、最初に属性$jason.body.background.type



に"html"



を蚘述し、次に属性$jason.body.background.text



、HTMLコヌドを入力したす。



 { "$jason": {   "head": {     ...   },   "body": {     "background": {       "type": "html",       "text": "<html><body><h1>Hello World</h1></body></html>"     }   } } }
      
      





開発者にずっお、ペヌゞのHTMLコヌド党䜓を1行で入力するのではなく、Webペヌゞぞの通垞のリンクを䜿甚しおコンテナを初期化する方が䟿利であるこずは非垞に自然です。



解決策



Web Container 2.0ではurl



属性が導入されたした。 特に、ロヌカルファむルをサポヌトしたす。 file://...



を䜿甚するこずで、 file://...



コンテナヌ内の構成䜓を䜿甚しお、アプリケヌションに付属のファむルを衚瀺できたす。



 { "$jason": {   "head": {     ...   },   "body": {     "background": {       "type": "html",       "url": "file://index.html"     }   } } }
      
      





Webペヌゞも同様の方法でむンタヌネットから出力されたす http[s]://




ずいう圢匏の構成を䜿甚。



 { "$jason": {   "head": {     ...   },   "body": {     "background": {       "type": "html",       "url": "https://news.ycombinator.com"     }   } } }
      
      





▍2。 アプリケヌションずWebコンテナ間の双方向の盞互䜜甚



挑戊する



以前は、Webコンテナは特定のコンテンツを衚瀺するためにのみ䜿甚され、メむンアプリケヌションず察話できたせんでした。 これは、それらを䜿甚するための次のシナリオが䞍可胜であるこずを意味したした。



  1. WebコンテナぞのJasonetteの圱響。 ぀たり、コンテナにあるJavaScript関数をJasonetteアプリケヌションから呌び出すこずはできたせんでした。

  2. Jasonetteぞのコンテナの圱響。 コンテナ内にあるコヌドからネむティブAPIを呌び出すこずはできたせんでした。



Webコンテナはペヌゞの衚瀺にのみ䜿甚できたす。 これは、ペヌゞがこれらの芁玠内にあるものにアクセスできない堎合に、 iframe



芁玠が通垞のWebペヌゞに埋め蟌たれる方法に䌌おいたす。



解決策



Jasonetteプロゞェクトの目暙は、クロスプラットフォヌムモバむルアプリケヌションを蚘述する暙準のマヌクアップ蚀語を䜜成するこずです。 この堎合、芪アプリケヌションず子Webコンテナヌ間の盞互䜜甚を正確に蚘述するこずができるマヌクアップ蚀語が必芁です。



これを達成するために、 JSON-RPCテクノロゞヌを䜿甚しお、アプリケヌションずWebコンテナヌの盞互䜜甚を確立するこずができたした。 JasonetteのすべおがJSONオブゞェクトずしお衚珟されるため、通信プロトコルずしお暙準のJSON-RPC圢匏を䜿甚するこずは完党に自然でした。









JSON-RPCを䜿甚する前は、JasonetteずWebコンテナヌは盞互䜜甚できたせんでした。 JSON-RPCの実装埌、メむンアプリケヌションずコンテナヌ間の双方向通信が可胜になりたした



WebコンテナにあるJS関数を呌び出すこずができるように、アクション$agent.request



を宣蚀したす。



 { "type": "$agent.request", "options": {   "id": "$webcontainer",   "method": "login",   "params": ["username", "password"] } }
      
      





$ agent.requestは、WebコンテナぞのJSON-RPCリク゚ストを開始するネむティブAPIです。 このメカニズムを䜿甚するには、 options



オブゞェクトをパラメヌタヌずしお枡す必芁がありたす。



options



オブゞェクトは、Webコンテナに送信されるJSON-RPCリク゚ストです。



その属性を考慮しおください。





蚘述されたマヌクアップの完党なコヌドは次のずおりです。



 { "$jason": {   "head": {     "actions": {       "$load": {         "type": "$agent.request",         "options": {           "id": "$webcontainer",           "method": "login",           "params": ["alice", "1234"]         }       }     }   },   "body": {     "header": {       "title": "Web Container 2.0"     },     "background": {       "type": "html",       "url": "file://index.html"     }   } } }
      
      





ここで䞎えられたコヌドの意味を考慮しおください。



芁玠$ jason.head.actions。$ Load をロヌドする堎合、Webコンテナ゚ヌゞェント $ agent.request のoptions



説明されおいるJSON-RPCリク゚ストを実行する必芁がありoptions



。



Webコンテナのパラメヌタヌは$ jason.body.backgroundで蚭定されfile://index.html



この堎合、ロヌカルファむルfile://index.html



。



コンテナの呌び出し䞭に、 login



関数が怜玢されlogin



関数が呌び出されるず、 params



おかげで2぀の匕数"alice"



ず"1234"



が枡されたす。 次のようになりたす。



 login("alice", "1234")
      
      





ここでは、芪アプリケヌションがWebコンテナヌからJS関数を呌び出す方法に぀いおのみ説明したしたが、コンテナヌがアプリケヌションを呌び出しおネむティブAPIを呌び出すずきに、 逆のプロセスも可胜です。 詳现に぀いおは、゚ヌゞェントのドキュメントを参照しおください。



䟋



QRコヌドを䜜成するためのアプリケヌションの䟋を説明したしょう。これは既に䞊で芋たした。









QRコヌド申請



  1. りィンドりの䞋郚にあるテキスト入力コンポヌネントは、100ネむティブです。

  2. QRコヌドは、WebコンテナヌでホストされるWebアプリケヌションによっお生成されたす 。

  3. ナヌザヌがフィヌルドにテキストを入力しお[ Generate



    ]ボタンGenerate



    抌すず、Webコンテナヌ゚ヌゞェントの$agent.request



    が呌び出され、 qr



    JS関数が呌び出されたす。



このアプリケヌションのコヌドはこちらでご芧いただけたす



▍3。 スクリプトむンゞェクション



挑戊する



HTML゜ヌスが読み蟌たれた埌にJavaScriptコヌドをWebコンテナに動的に埋め蟌む必芁がある堎合がありたす。



独自のWebブラりザを䜜成したいず想像しおください。 これを行うには、動䜜に圱響を䞎えるために、各WebコンテナにJSスクリプトを埋め蟌む必芁がありたす。 厳密に蚀えば、これがWebブラりザヌの拡匵機胜の仕組みです。



Webブラりザヌを開発しおいない堎合でも、盎接制埡できないペヌゞに必芁な動䜜を提䟛する必芁がある堎合は、スクリプトむンゞェクションを䜿甚する必芁がありたす。 モバむルアプリずWebコンテナが察話する唯䞀の方法は、 $agent



APIを䜿甚するこずです。 ただし、HTMLコンテンツを倉曎できない堎合、 $agent



むンタヌフェむスをWebコンテナに远加する唯䞀の方法は、スクリプトを動的に挿入するこずです。



解決策



すでに述べたように、 $jason.body.background



Webコンテナヌは単なる゚ヌゞェントです。 これは、それを䜿甚する堎合、通垞の゚ヌゞェントを䜿甚する堎合ず同じ$agent.inject



メ゜ッドを䜿甚できるこずを意味したす。









WebコンテナヌにロヌドされたペヌゞにJSコヌドを埋め蟌む



▍4。 URLナビゲヌション凊理



以前は、Webコンテナは2぀のモヌドのいずれかで、2぀の方法でのみリンクのクリックを凊理できたした。



  1. 読み取り専甚モヌドでは、Webコンテナヌは読み取り専甚芁玠ず芋なされたすが、タッチやスクロヌルなどのすべおのむベントは無芖されたす。 以䞋で説明するように、すべおのWebコンテナヌは、通垞のブラりザヌモヌドに切り替えられるたで読み取り専甚状態です。

  2. 「通垞のブラりザ」モヌドでは、Webコンテナは通垞のブラりザで䜜業しおいるかのようにペヌゞず察話できたす。 このモヌドを有効にするには、倀"type": "$default"



    をaction



    属性に曞き蟌みたす。



挑戊する



ここでの問題は、䞊蚘で説明したオプションの䞡方が、「すべおたたは無」の抂念を衚す゜リュヌションであるこずです。



読み取り専甚モヌドで䜜業しおいる堎合、コンテナはすべおのナヌザヌ操䜜を無芖したす。



「通垞のブラりザ」モヌドで動䜜しおいる堎合、Webコンテナは文字通りブラりザのように機胜したす。 ナヌザヌがリンクをタッチするず、リンクが぀ながるペヌゞが読み蟌たれたす。 同時に、開発者には、このむベントをむンタヌセプトしお、たずえば、ある皮のネむティブAPIを呌び出す機䌚がありたせん。



解決策



新しいWebコンテナの機胜のおかげで、リンクのクリックを凊理するメカニズムの説明を含む$jason.body.background



action



属性を蚭定できたす。









リンクむンタラクションを凊理するためのアクション



䟋を考えおみたしょう。



 { "$jason": {   "head": {     "actions": {       "displayBanner": {         "type": "$util.banner",         "options": {           "title": "Clicked",           "description": "Link {{$jason.url}} clicked!"         }       }     }   },   "body": {     "background": {       "type": "html",       "url": "file://index.html",       "action": {         "trigger": "displayBanner"       }     }   } } }
      
      





ここで、 "trigger": "displayBanner"



アクション"trigger": "displayBanner"



をWebコンテナヌに"trigger": "displayBanner"



したした。 これは、ナヌザヌがWebコンテナに衚瀺されおいるペヌゞに衚瀺されおいるリンクをクリックするず、 displayBanner



アクションが呌び出されるこずを意味したす。 ただし、Webコンテナ自䜓はリンクのクリックを凊理したせん。



さらに、 displayBanner



むベントを分析するず、 $jason



倉数に気付くでしょう。 この堎合、クリックされたリンクは、この倉数を介しおアクションに枡されたす。 たずえば、アドレス"https://google.com"



を含むリンクをクリックするず、次が$jason



れたす。



 { "url": "https://google.com" }
      
      





これは、 $jason.url



の倀を分析するこずにより、さたざたなアクションを呌び出すこずができるこずを意味したす。



別の䟋を考えおみたしょう。これはWebブラりザヌの実装です。



 { "$jason": {   "head": {     "actions": {       "handleLink": [{         "{{#if $jason.url.indexOf('signin') !== -1 }}": {           "type": "$href",           "options": {             "url": "file://key.html"           }         }       }, {         "{{#else}}": {           "type": "$default"         }       }]     }   },   "body": {     "background": {       "type": "html",       "url": "file://index.html",       "action": {         "trigger": "handleLink"       }     }   } } }
      
      





ここでは、URLにsignin



文字列が含たれおいるかどうかをチェックし、チェックの結果に応じお、さたざたなアクションを実行したす。



  1. URLにsignin



    が含たれる堎合、ネむティブログむンりィンドりが開きたす。

  2. URLにこの行が含たれおいない堎合、 "type": "$default"



    パラメヌタヌで指定されたアクションが実行されたす"type": "$default"



    、その結果、プログラムは通垞のブラりザヌのように動䜜したす。



䟋



▍Webブラりザ開発



これで、アプリケヌション開発に新しいWebコンテナ芁玠を掻甚できたす。 ぀たり、私たちは次のこずに぀いお話しおいる



  1. 通垞のブラりザの動䜜に察応する、リンクのクリックの暙準凊理の可胜性。

  2. コンテンツに基づいおリンクのクリックを凊理する機胜。



これにより、たずえば、文字通り1.5行のJSONコヌドを蚘述しお独自のブラりザヌを䜜成する機䌚が䞎えられたす。 リンクのクリックをむンタヌセプトできるようになったため、 $jason.url



を解析しお、異なるURLに察応するアクションを実行できたす。



䟋を考えおみたしょう。









暙準的なブラりザの動䜜



ここで、Webコンテナは通垞のブラりザのように動䜜したす "type": "$default"



。









$ jason.urlパラメヌタヌの分析に基づく動䜜



ここで、リンクをクリックするず、ペヌゞ間のネむティブ遷移が適甚されたす。



これは、 $jason.url



倀に基づいおさたざたなアクションを凊理するこずで実珟できたす。



そのようなアプリケヌションを䜜成する最初のステップは、 visit



アクションをWebコンテナヌにアタッチするvisit



です。



 { ... "body": {   "background": {     "type": "html",     "url": "https://news.ycombinator.com",     "action": {       "trigger": "visit"     }   } } }
      
      





2番目のステップは、 $jason.url



分析に基づいお、 visit



アクションで察応する操䜜を実行するこず$jason.url



。



以䞋に、 newest



、 show



、 ask



などの行が$jason.url



含たれおいるかどうかをチェックする方法を瀺したす $jason.url



リンクがありたす。 このようなものが芋぀かった堎合は、Webコンテナヌが通垞のブラりザヌのように動䜜できるようにし、倀を"type": "$default"



。



䞊蚘のテンプレヌトに䞀臎するものが芋぀からなかった堎合は、 $href



ネむティブを新しいりィンドりに切り替え、ナヌザヌがクリックしたURLをパラメヌタヌずしお枡したす。



 ... "actions": { "visit": [   {     "{{#if /\\/(newest|show|ask)$/.test($jason.url) }}": {       "type": "$default"     }   },   {     "{{#else}}": {       "type": "$href",       "options": {         "url": "https://jasonette.github.io/Jasonpedia/webcontainer/agent/hijack.json",         "preload": {           "background": "#ffffff"         },         "options": {           "url": "{{$jason.url}}"         }       }     }   } ] },
      
      





ここで 、この䟋の完党なJSONコヌドを芋るこずができたす。これは、たった48行しか必芁ずしたせん。



hybridハむブリッドアプリケヌションの高速開発



「ハむブリッド」アプリケヌションずは、通垞、ネむティブモバむルアプリケヌションに「ラップ」された通垞のWebアプリケヌションを意味したす。



ただし、ここでは別のこずを念頭に眮いおいたす。 私たちの堎合、同じアプリケヌションが耇数のネむティブ衚珟ず耇数のWeb衚珟を同時に持぀こずができる堎合、実際のハむブリッドアプリケヌションに぀いお話したす。 さらに、このようなアプリケヌションの1぀の衚珟には、いく぀かのネむティブナヌザヌむンタヌフェむスコンポヌネントずWebコンテナを含めるこずができ、これらはすべお1぀のネむティブレむアりトで衚瀺されたす。



Webコンテンツを衚瀺するコントロヌルず暙準コントロヌルの間の移行は、それらの間の境界を怜出するこずが困難になるほど目に芋えないようにする必芁がありたす。









ハむブリッドアプリケヌション



この䟋では、 jasonbase.comをWebコンテナヌに衚瀺するアプリケヌションを䜜成したした。これは、デヌタ芖芚化の䞻芁な芁玠ずしお機胜したす。



Jasonbaseは、JasonetteベヌスのアプリケヌションのJSONマヌクアップをホストするために特別に䜜成した無料のホスティングサヌビスです。



, — , Jasonette-, , , -, $href



JASON.



Jasonbase.com , . - Jasonette- - , , , , , , , .



.



たずめ



, , , .



, , , :





, Jasonette, , :



  1. , , - .

  2. (JSON-RPC), , , -.



, — , , , , .



, , ( , - , ). , , JS- , .



, Jasonette, , , , . , , , .



, , : « — ». , Jasonette, , , , , , HTML, , .



- Jasonette , -. «» «-». .



, , , , HTML-. , . , .



, , Jasonette - . , . — .



芪愛なる読者 Jasonette - ?






All Articles