[{"data":1,"prerenderedAt":333},["ShallowReactive",2],{"recruit-jobs":3,"recruit-articles-all-1":157,"recruit-articles-categories":265,"recruit-article-entry-248":277},{"list":4,"categories":146},[5,13,18,23,28,33,41,46,51,56,61,66,71,76,81,86,91,96,101,106,111,116,121,126,131,136,141],{"topics_id":6,"contents_type":7,"contents_type_nm":8,"name":9,"text":10,"url":11,"is_top":12},64,18,"新卒","WEBエンジニア職","事業・サービス・社内業務効率化に関わるプロダクト開発、システム開発、アプリ開発などDX推進を担当。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2126894917723471872",true,{"topics_id":14,"contents_type":7,"contents_type_nm":8,"name":15,"text":16,"url":17,"is_top":12},65,"データサイエンティスト職","事業・サービスに関わるビッグデータに対して、横断的にデータ分析基盤を構築し、新しい提供価値を創造。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2171814626636591104",{"topics_id":19,"contents_type":7,"contents_type_nm":8,"name":20,"text":21,"url":22,"is_top":12},66,"業務自動化エンジニア職","様々な業態・業務プロセスにおける、自動化や仕組み化の導入・開発を推進。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2126896559415881728",{"topics_id":24,"contents_type":7,"contents_type_nm":8,"name":25,"text":26,"url":27,"is_top":12},67,"IoTエンジニア職","IoT事業の拡大に向け、ハード・ソフト両軸で新しい体験価値を創造。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2156228450968444928",{"topics_id":29,"contents_type":7,"contents_type_nm":8,"name":30,"text":31,"url":32,"is_top":12},68,"セキュリティエンジニア職","従業員の働きやすさを支える、業務システムとITインフラの構築・管理。","https://public.n-ats.hrmos.co/rizapgroup/jobs/2179029856766332928",{"topics_id":34,"contents_type":35,"contents_type_nm":36,"name":37,"text":38,"url":39,"is_top":40},69,21,"中途","開発PM","Webサービスやモバイルアプリの要件定義・設計から開発チームのマネジメント、進捗・品質管理、定量定性分析による改善を担う。","https://hrmos.co/pages/rizapgroup/jobs/000003",false,{"topics_id":42,"contents_type":35,"contents_type_nm":36,"name":43,"text":44,"url":45,"is_top":40},70,"Webディレクター","WebページのディレクションからCMS運用、KPI設計・ABテスト・PDCAサイクルによるサイトグロースまで、幅広くWeb制作の進行を担う。","https://hrmos.co/pages/rizapgroup/jobs/000007",{"topics_id":47,"contents_type":35,"contents_type_nm":36,"name":48,"text":49,"url":50,"is_top":12},71,"シニアプロダクトマネージャー","アプリ・店舗IoT・タブレット等の複数プロダクト戦略策定から要件定義・UX設計・効果検証まで、経営層と連携しながら一貫してプロダクト開発を主導。","https://hrmos.co/pages/rizapgroup/jobs/000010",{"topics_id":52,"contents_type":35,"contents_type_nm":36,"name":53,"text":54,"url":55,"is_top":12},72,"IoTサーバーエンジニア(オープンポジション)","店舗デバイスのデータ収集・遠隔制御基盤からアルゴリズム、外部ベンダー管理まで幅広く担当。既存システム連携や新価値提案を通じ、デバイス活用の仕組み作りを担う。","https://hrmos.co/pages/rizapgroup/jobs/000015",{"topics_id":57,"contents_type":35,"contents_type_nm":36,"name":58,"text":59,"url":60,"is_top":40},73,"店舗IoT／ハードウェア企画・プロダクトマネージャー","グループ独自のサービスやシステムの企画、要件定義、開発管理を担う。PoCによる仮説検証を行うほか、外部ベンダー管理を含むプロジェクト全体の推進を行う。","https://hrmos.co/pages/rizapgroup/jobs/000019",{"topics_id":62,"contents_type":35,"contents_type_nm":36,"name":63,"text":64,"url":65,"is_top":40},74,"モバイルアプリエンジニア(Android)","Kotlinを用いたAndroidアプリの企画・設計・開発・運用を担当。PdM・デザイナー・バックエンドエンジニアと連携したチーム開発でサービス品質向上を推進する。","https://hrmos.co/pages/rizapgroup/jobs/000025",{"topics_id":67,"contents_type":35,"contents_type_nm":36,"name":68,"text":69,"url":70,"is_top":40},75,"データアナリスト","SQLや機械学習を活用し、サービスの新規開発・改善を支援する。KPI定義・可視化・データ分析基盤の構築を担当。","https://hrmos.co/pages/rizapgroup/jobs/000042",{"topics_id":72,"contents_type":35,"contents_type_nm":36,"name":73,"text":74,"url":75,"is_top":40},76,"Webデザイナー","WebサービスやアプリのUI/UXからLP・バナー等の広告クリエイティブ制作など、デジタル+リアルの顧客接点を意識したデザイン業務を担う。","https://hrmos.co/pages/rizapgroup/jobs/000061",{"topics_id":77,"contents_type":35,"contents_type_nm":36,"name":78,"text":79,"url":80,"is_top":40},77,"プロジェクトマネージャー・プロジェクトリーダー","RIZAPグループ全社のDX推進として、清掃管理システムやCTI/CRMリプレイス等のシステム導入プロジェクトを要件定義からリリースまで一貫してマネジメントする。","https://hrmos.co/pages/rizapgroup/jobs/100008",{"topics_id":82,"contents_type":35,"contents_type_nm":36,"name":83,"text":84,"url":85,"is_top":40},78,"Webディレクター（マネージャー候補）","WebディレクションやサイトグロースのPDCA推進に加え、ディレクター育成・目標設定・評価・アーキテクチャ選定など組織マネジメント全般を担うリーダー職。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400071",{"topics_id":87,"contents_type":35,"contents_type_nm":36,"name":88,"text":89,"url":90,"is_top":40},79,"開発PM（マネージャー候補）","Webサービス・モバイルアプリの開発方針策定からPMチームの育成・評価・組織運営まで担い、経営層・外部パートナーと連携しながらプロダクト開発を統括する。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400072",{"topics_id":92,"contents_type":35,"contents_type_nm":36,"name":93,"text":94,"url":95,"is_top":40},80,"DX戦略推進マネージャー","経営・事業戦略フェーズから参画し、AI/RPA活用を前提とした業務プロセス改革・システム要件定義・開発ディレクション・ステークホルダー調整を横断的に主導。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400083",{"topics_id":97,"contents_type":35,"contents_type_nm":36,"name":98,"text":99,"url":100,"is_top":40},81,"PL／PM","システム構築プロジェクトにおいて、進捗・課題・コスト管理から外部ベンダー交渉・社内調整まで幅広くプロジェクトのマネジメントを担う。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400102",{"topics_id":102,"contents_type":35,"contents_type_nm":36,"name":103,"text":104,"url":105,"is_top":40},82,"社内SE／インフラ・ネットワークアーキテクト","社内インフラ・ネットワークの要件定義・設計・リリースから基幹システムのリプレイス検討・保守運用改善まで、グループ全体の社内ITを包括的に担当。","https://hrmos.co/pages/rizapgroup/jobs/1971790520045400103",{"topics_id":107,"contents_type":35,"contents_type_nm":36,"name":108,"text":109,"url":110,"is_top":40},83,"電気エンジニア(オープンポジション)","店舗設置IoT機器の回路・基板設計・試作・評価・検証を行い、パートナーとの生産立ち上げや外部開発ベンダーのマネジメントまで手掛けるハードウェア開発職。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341962",{"topics_id":112,"contents_type":35,"contents_type_nm":36,"name":113,"text":114,"url":115,"is_top":40},84,"業務アプリケーション開発エンジニア・アーキテクト","クラウドを活用したRIZAPグループ各社の社内業務アプリを内製開発・運用し、現場ヒアリングから要件定義・自動化・効率化の実装まで一貫して担う。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341966",{"topics_id":117,"contents_type":35,"contents_type_nm":36,"name":118,"text":119,"url":120,"is_top":40},85,"組み込みエンジニア(オープンポジション)","センサーや無線通信を用いたIoT機器のファームウェア設計・実装・検証とセンサーデータ分析・制御アルゴリズム開発を担い、外部ベンダー共同開発も管理する。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341969",{"topics_id":122,"contents_type":35,"contents_type_nm":36,"name":123,"text":124,"url":125,"is_top":40},86,"機構エンジニア(オープンポジション)","店舗設置機器の機構部PoC・設計・試作・評価から樹脂成型・板金部品の量産化まで担い、生産パートナーと協力して製造立ち上げを主導するエンジニア職。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341970",{"topics_id":127,"contents_type":35,"contents_type_nm":36,"name":128,"text":129,"url":130,"is_top":40},87,"ハードウェア品質管理","既存マシンの品質課題解析や対策立案から、新デバイスの性能・信頼性評価、品質データ分析・工程管理まで一貫して担い、ハードウェアの品質保証と改善提案をリードする。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341973",{"topics_id":132,"contents_type":35,"contents_type_nm":36,"name":133,"text":134,"url":135,"is_top":40},88,"AI・データユニット（20代の第二新卒～ミドルクラス）","多角的な事業から得られる膨大なデータを活用し、ビジネスインパクトを最大化するためのデータ基盤構築およびAIソリューションの開発を担う。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341987",{"topics_id":137,"contents_type":35,"contents_type_nm":36,"name":138,"text":139,"url":140,"is_top":40},89,"修理工程プロセスエンジニア・現場監督","新規修理工程の立ち上げ・レイアウト設計・設備選定からSOP作成・進捗/品質/コスト管理・現場作業員の安全衛生監督まで一貫して担う製造現場リーダー職。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341990",{"topics_id":142,"contents_type":35,"contents_type_nm":36,"name":143,"text":144,"url":145,"is_top":40},90,"修理現場リーダー・作業員監督","新規修理工程にて、現場の労務・シフト管理や技術指導、進捗管理を一貫して担当。現場の課題を吸い上げ、プロセス改善や品質向上に向けた提案までを担う。","https://hrmos.co/pages/rizapgroup/jobs/2110665929241341991",[147,151,154],{"label":148,"value":149,"to":150},"すべて","all","/recruit/jobs",{"label":8,"value":152,"to":153},"18","/recruit/jobs/categories/18",{"label":36,"value":155,"to":156},"21","/recruit/jobs/categories/21",{"articles":158,"totalPageCnt":264},[159,170,180,187,197,202,210,216,222,228,233,238,243,253,258],{"to":160,"image":161,"date":162,"label":163,"title":164,"tags":165},"/recruit/articles/entries/199","https://rizap-tech.g.kuroco-img.app/v=1775010931/files/user/recruit/contents/thumbnail/n5cfaf3e31c72_73e97bd445fe0dfcbf6bbcdef8acc1f4.png","2026.02.05","技術・カンファレンス","AIエージェント時代を見据えた認証認可の未来 ─ Authlete Meetup 2025 参加レポート",[166,167,168,169],"イベントレポート","カンファレンス","Authlete","エンジニア",{"to":171,"image":172,"date":173,"label":174,"title":175,"tags":176},"/recruit/articles/entries/200","https://rizap-tech.g.kuroco-img.app/v=1775010935/files/user/recruit/contents/thumbnail/n9a33f80f8704_7728e1500e7c81f2e18fbd5accede9a9.jpeg","2026.01.19","インターン・採用","【RIZAPテクノロジーズ】27年卒向け　第9回3Daysエンジニアインターンを開催しました！",[169,177,178,179],"開発","新卒採用","インターン",{"to":181,"image":182,"date":183,"label":163,"title":184,"tags":185},"/recruit/articles/entries/201","https://rizap-tech.g.kuroco-img.app/v=1775010937/files/user/recruit/contents/thumbnail/n24f5b9c49390_6873514f9cb987e31f21d908e7882fc4.png","2026.01.08","RIZAPオフィスでProgateハッカソンを開催しました！",[178,186],"ハッカソン",{"to":188,"image":189,"date":190,"label":191,"title":192,"tags":193},"/recruit/articles/entries/203","https://rizap-tech.g.kuroco-img.app/v=1775010930/files/user/recruit/contents/thumbnail/n2f795844f152_90197213ae57cefa5c5b5bbfb90cc914.png","2025.12.26","インタビュー","内定者が聞く、RIZAPテクノロジーズ IoT統括部のリアル【後編】",[194,195,196],"社員インタビュー","IoT","仕事のリアル",{"to":198,"image":199,"date":190,"label":191,"title":200,"tags":201},"/recruit/articles/entries/202","https://rizap-tech.g.kuroco-img.app/v=1775010933/files/user/recruit/contents/thumbnail/n8a11235fd931_b14a9ca709c1ead3e54b9d46c46b3d4f.png","内定者が聞く、RIZAPテクノロジーズ IoT統括部のリアル【前編】",[194,195,196],{"to":203,"image":204,"date":205,"label":163,"title":206,"tags":207},"/recruit/articles/entries/204","https://rizap-tech.g.kuroco-img.app/v=1775010959/files/user/recruit/contents/thumbnail/ne6d110c0bec0_9577421efba8a564c17a6f9862c51c48.jpeg","2025.12.23","YAPC::Fukuoka 2025カンファレンスレポート【各講演の学び】",[166,167,169,208,209],"SRE","YAPC",{"to":211,"image":212,"date":213,"label":174,"title":214,"tags":215},"/recruit/articles/entries/205","https://rizap-tech.g.kuroco-img.app/v=1775010934/files/user/recruit/contents/thumbnail/n8ba7168ba394_0aa90eced3923259150a7e78b770d871.jpeg","2025.12.19","【RIZAPテクノロジーズ】27年卒向け　第8回3Daysエンジニアインターンを開催しました！",[169,177,178,179],{"to":217,"image":218,"date":219,"label":163,"title":220,"tags":221},"/recruit/articles/entries/206","https://rizap-tech.g.kuroco-img.app/v=1775010948/files/user/recruit/contents/thumbnail/n1843939c3a3c_8f61cafb8ad4218a615ec0751333945e.jpeg","2025.12.11","58ハッカソンにメンターとして参加しました！",[169,186,166],{"to":223,"image":224,"date":225,"label":191,"title":226,"tags":227},"/recruit/articles/entries/210","https://rizap-tech.g.kuroco-img.app/v=1775010930/files/user/recruit/contents/thumbnail/n3d479ba02fcc_c19c70a9c2415f376a3d6b83fce5a8b3.png","2025.12.04","未経験からバックエンドエンジニアに！　若手社員が語る、個人のスキルだけではいけない理由",[194,178,169,177],{"to":229,"image":230,"date":225,"label":191,"title":231,"tags":232},"/recruit/articles/entries/209","https://rizap-tech.g.kuroco-img.app/v=1775010952/files/user/recruit/contents/thumbnail/nb1b9e76e120b_df4b3f13b243d61bc3d303a0491524b7.png","エンジニアの力で社内の業務を自動化！　“to 社内向け”の仕事とは？",[194,169,178,196],{"to":234,"image":235,"date":225,"label":191,"title":236,"tags":237},"/recruit/articles/entries/208","https://rizap-tech.g.kuroco-img.app/v=1775010949/files/user/recruit/contents/thumbnail/n310208834a85_5857b502c7e40d1ce19340d831671b68.png","データアナリストとして成長途中のRIZAPを支える！　データを使った影響力のあるしごと",[194,178,196],{"to":239,"image":240,"date":225,"label":191,"title":241,"tags":242},"/recruit/articles/entries/207","https://rizap-tech.g.kuroco-img.app/v=1775010943/files/user/recruit/contents/thumbnail/n588feaae4af0_2ebd47200eaaa8ae0324c4b5d50428fe.png","デジタル化に留まらないDXを。 “攻め” の情報システム部とは？【内定者が若手社員に聞く！】",[194,178,196],{"to":244,"image":245,"date":246,"label":163,"title":247,"tags":248},"/recruit/articles/entries/213","https://rizap-tech.g.kuroco-img.app/v=1775010957/files/user/recruit/contents/thumbnail/ndbe0ad4c3c3b_881fecd27c29077dd8e3601cce3d06fc.jpeg","2025.12.03","Vue Fes Japan 2025 に登壇しました！",[166,167,249,250,251,169,252],"vue","nuxt","chocoZAP","登壇",{"to":254,"image":255,"date":246,"label":163,"title":256,"tags":257},"/recruit/articles/entries/212","https://rizap-tech.g.kuroco-img.app/v=1775010954/files/user/recruit/contents/thumbnail/nc0b63b0ba413_80f5027c4e0c8dc5adcdb46227fef03d.jpeg","Vue Fes Japan 2025  参加レポート",[166,167,249,250,169],{"to":259,"image":260,"date":246,"label":163,"title":261,"tags":262},"/recruit/articles/entries/211","https://rizap-tech.g.kuroco-img.app/v=1775010932/files/user/recruit/contents/thumbnail/n05f3262fccc7_bbdfb906499373c3a143a2b88638f2dd.jpeg","chocoZAPがRuby biz Grand prix 2025 大賞を受賞",[166,263,169,251,252],"Ruby",10,[266,268,271,274],{"label":148,"value":149,"to":267},"/recruit/articles",{"label":163,"value":269,"to":270},"32","/recruit/articles/categories/32",{"label":174,"value":272,"to":273},"33","/recruit/articles/categories/33",{"label":191,"value":275,"to":276},"31","/recruit/articles/categories/31",{"article":278,"relatedJobs":288,"relatedArticles":290},{"date":279,"publishedAt":280,"categoryName":163,"title":281,"heroImage":282,"body":283,"metaDescription":284,"tags":285},"2024.12.23","2024-12-23T00:00:00+09:00","iOSアプリで任意のJavaScriptをWebビューに注入しWeb側で実行する方法","https://rizap-tech.g.kuroco-img.app/v=1775010943/files/user/recruit/contents/thumbnail/n407e7df0b78c_e6fe889f228e70103cdcac26a88f8779.jpeg","\u003Cp name=\"dba0fc1e-1301-4db2-a6d7-8c47e9598112\" id=\"dba0fc1e-1301-4db2-a6d7-8c47e9598112\">chocoZAP iOSアプリ開発を担当している田中です。\u003Cbr>アプリ側で固有に保持する値をWebに受け渡す際に、クエリパラメータやCookieを経由するなどいくつかの方法が考えられますが、今回はアプリ側で定義したJavaScript関数をWKWebに注入するという手法を用いたので、その実装方法をご紹介します。\u003C/p>\u003Ch2 name=\"fd29b142-5116-4672-a63c-f0cb2da3b939\" id=\"fd29b142-5116-4672-a63c-f0cb2da3b939\">WKUserScriptでスクリプトを定義する\u003C/h2>\u003Cp name=\"f52e4723-53b1-4c80-ac29-128e290aa475\" id=\"f52e4723-53b1-4c80-ac29-128e290aa475\">Apple のドキュメントに以下の概要が記されており、まさに今回の要件を満たしてくれそうです。\u003C/p>\u003Cfigure name=\"fb27f09e-d930-45f0-a2c7-f70d881d995e\" id=\"fb27f09e-d930-45f0-a2c7-f70d881d995e\">\u003Cblockquote>\u003Cp name=\"68677c84-6f54-4e59-89b4-877421abfb9b\" id=\"68677c84-6f54-4e59-89b4-877421abfb9b\">Create a WKUserScript object when you want to inject custom script code into the pages of your web view.&nbsp;\u003Cbr>（筆者訳）カスタムスクリプトをWebビューのページに注入したい場合、WKUserScriptオブジェクトを生成する。\u003C/p>\u003C/blockquote>\u003Cfigcaption>\u003Ca href=\"https://developer.apple.com/documentation/webkit/wkuserscript\" target=\"_blank\" rel=\"nofollow noopener\">WKUserScript | Apple Developer Documentation\u003C/a>\u003C/figcaption>\u003C/figure>\u003Ch2 name=\"fa082886-7b11-4331-b384-e779b10f493d\" id=\"fa082886-7b11-4331-b384-e779b10f493d\">WKUserContentControllerにスクリプトを追加する\u003C/h2>\u003Cp name=\"6698904a-740d-4a92-be68-3e8ac3009002\" id=\"6698904a-740d-4a92-be68-3e8ac3009002\">ここで生成したスクリプトは、 \u003Cstrong>WKWebConfiguration\u003C/strong> の持つ \u003Cstrong>userContentController\u003C/strong> に対して追加することでWeb側から実行できます。\u003C/p>\u003Cfigure name=\"4623dd99-09f1-4ccb-a51c-cc4d7e5967ba\" id=\"4623dd99-09f1-4ccb-a51c-cc4d7e5967ba\">\u003Cblockquote>\u003Cp name=\"73d6ad94-785a-446f-b997-c2b60bdbde88\" id=\"73d6ad94-785a-446f-b997-c2b60bdbde88\">A WKUserContentController object provides a bridge between your app and the JavaScript code running in the web view.&nbsp;\u003Cbr>（筆者訳）WKUserContentController オブジェクトは、アプリとWebビュー上で実行するJavaScriptコードとのブリッジを提供する\u003C/p>\u003C/blockquote>\u003Cfigcaption>\u003Ca href=\"https://developer.apple.com/documentation/webkit/wkusercontentcontroller\" target=\"_blank\" rel=\"nofollow noopener\">WKUserContentController | Apple Developer Documentation\u003C/a>\u003C/figcaption>\u003C/figure>\u003Cp name=\"505b6b85-8be8-4056-a8e3-5b3ca6d39324\" id=\"505b6b85-8be8-4056-a8e3-5b3ca6d39324\">追加が可能なタイミングは\u003Cstrong>WKWebConfiguration\u003C/strong> の初期化時に限らず任意のタイミングで行えます。たとえば \u003Cstrong>WKNavigationDelegate.web(_:didStartProvisionalNavigation:)\u003C/strong> などでURLの変更を補足して動的に注入することも可能でした。\u003C/p>\u003Cp name=\"da7f8f03-909d-4fc4-aaa7-78718053b905\" id=\"da7f8f03-909d-4fc4-aaa7-78718053b905\">\u003Cstrong>WKUserScript\u003C/strong>は生成時にその注入タイミング \u003Cstrong>injectionTime\u003C/strong>をコンテンツのローディング状態に応じて指定することが可能です。Web側でのスクリプト実行タイミングに対して適切な指定をしましょう。\u003C/p>\u003Ch2 name=\"48272b25-c936-43e8-9af2-1d754d90a5da\" id=\"48272b25-c936-43e8-9af2-1d754d90a5da\">実装例\u003C/h2>\u003Cpre name=\"026a484b-db0e-4d66-95d3-100600fc3ad2\" id=\"026a484b-db0e-4d66-95d3-100600fc3ad2\">\u003Ccode class=\"language-plaintext\">// ① Web側で実行したい関数を定義する \nlet codeText = \"\"\" \nfunction getSomeID() \n{ \n&nbsp; &nbsp; /* 例：アプリで保持する値をWeb側に連携する */ \n&nbsp; &nbsp; return \"\\(someIDValue)\" \n} \n\"\"\" \n// ② WKWeb にスクリプトを追加する \nlet script = WKUserScript(source: codeText, injectionTime: .atDocumentStart, forMainFrameOnly: true) web.configuration.userContentController.addUserScript(script)\u003C/code>\u003C/pre>\u003Cp name=\"6cd25bea-1786-4527-97f8-bb3b28005f6f\" id=\"6cd25bea-1786-4527-97f8-bb3b28005f6f\">Web側では、すでにJavaScriptに注入された関数を呼び出すだけです。\u003C/p>\u003Cpre name=\"17a844bc-41a2-48ed-aa5a-4dc90fa4b450\" id=\"17a844bc-41a2-48ed-aa5a-4dc90fa4b450\">\u003Ccode class=\"language-plaintext\">result = getSomeID();\nconsole.log(result);\u003C/code>\u003C/pre>\u003Ch2 name=\"26b7d037-e8c2-4a90-875f-2cd4aa34c71c\" id=\"26b7d037-e8c2-4a90-875f-2cd4aa34c71c\">おわりに\u003C/h2>\u003Cp name=\"d350f00c-1c81-4ad7-8de9-fad33a72bd30\" id=\"d350f00c-1c81-4ad7-8de9-fad33a72bd30\">こうしたWebからアプリ側の処理を呼び出す機会は、個人的にあまり多くなく知見が乏しかったため、勉強になりました。\u003C/p>\u003Cfigure name=\"891465db-812b-4c26-8fe7-fb2f7b2f9c88\" id=\"891465db-812b-4c26-8fe7-fb2f7b2f9c88\">\u003Cblockquote>\u003Cp name=\"3c5760aa-7674-4d50-b914-4294e2a5e12e\" id=\"3c5760aa-7674-4d50-b914-4294e2a5e12e\">\u003Cstrong>［参照］\u003Cbr>\u003C/strong>・\u003Ca href=\"https://developer.apple.com/documentation/webkit/wkuserscript\" target=\"_blank\" rel=\"nofollow noopener\">WKUserScript | Apple Developer Documentation\u003C/a>\u003Cbr>・\u003Ca href=\"https://developer.apple.com/documentation/webkit/wkusercontentcontroller\" target=\"_blank\" rel=\"nofollow noopener\">WKUserContentController | Apple Developer Documentation\u003C/a>\u003Ca href=\"https://developer.apple.com/documentation/webkit/wkuserscript)?[WKUserContentController](https://developer.apple.com/documentation/webkit/wkusercontentcontroller)?[WKUserScriptInjectionTime](https://developer.apple.com/documentation/webkit/wkuserscriptinjectiontime\" target=\"_blank\" rel=\"nofollow noopener\">\u003Cbr>\u003C/a>・\u003Ca href=\"https://developer.apple.com/documentation/webkit/wkuserscriptinjectiontime\" target=\"_blank\" rel=\"nofollow noopener\">WKUserScriptInjectionTime&nbsp;| Apple Developer Documentation\u003C/a>\u003C/p>\u003C/blockquote>\u003Cfigcaption>&nbsp;\u003C/figcaption>\u003C/figure>\u003Cp name=\"eb72663f-e7fa-467e-84a0-af0db8edf0c7\" id=\"eb72663f-e7fa-467e-84a0-af0db8edf0c7\">&nbsp;\u003C/p>\u003Cp name=\"95b1b006-90e5-4323-afae-34e1a11350f2\" id=\"95b1b006-90e5-4323-afae-34e1a11350f2\">&nbsp;\u003C/p>","RIZAPテクノロジーズのiOSエンジニアが、WKUserScriptを使ってアプリ側で定義したJavaScript関数をWebビューに注入する実装方法を解説。chocoZAPアプリ開発での実践的なコード例を紹介。",[251,286,287],"iOS","技術ブログ",[289],{"title":9,"to":11},[291,299,307,312,320,327],{"to":292,"image":293,"date":294,"label":163,"title":295,"tags":296},"/recruit/articles/entries/289","https://rizap-tech.g.kuroco-img.app/v=1775010953/files/user/recruit/contents/thumbnail/nb49a1d88b23b_5d415aac2e18aa18d4053b1cf00e5dfb.png","2024.03.05","RIZAPのインターン生がJaSST ‘23 ２nd Tokai に参加してきました！",[297,298,167,166],"QAエンジニア","JaSST",{"to":300,"image":301,"date":302,"label":163,"title":303,"tags":304},"/recruit/articles/entries/258","https://rizap-tech.g.kuroco-img.app/v=1775010938/files/user/recruit/contents/thumbnail/n040a4074f8e5_2ba1aaa2fdf01a88a5ae20c73dcb6931.jpeg","2024.11.14","RIZAPのエンジニアが、KaigionRails 2024 に参加！ 【現場レポート】",[169,167,305,306,166],"Ruby on Rails","Kaigi on Rails",{"to":308,"image":309,"date":302,"label":163,"title":310,"tags":311},"/recruit/articles/entries/259","https://rizap-tech.g.kuroco-img.app/v=1775010929/files/user/recruit/contents/thumbnail/n0ed810cca009_0446ec74a181689a7e23e146fb389f22.jpeg","Vue Fes Japan 2024に参加してきました！",[169,167,249,166],{"to":313,"image":314,"date":315,"label":163,"title":316,"tags":317},"/recruit/articles/entries/307","https://rizap-tech.g.kuroco-img.app/v=1775010948/files/user/recruit/contents/thumbnail/n7094514b6542_8e21a60ec9e3d255268441b6bffc9e23.jpeg","2023.09.28"," RIZAP が、DroidKaigi 2023にも初参戦 ！",[318,251,319,169],"Android","DroidKaigi",{"to":321,"image":322,"date":323,"label":163,"title":324,"tags":325},"/recruit/articles/entries/274","https://rizap-tech.g.kuroco-img.app/v=1775010942/files/user/recruit/contents/thumbnail/n404e5831a2cd_a671798a641b43f775771b8504c5f4a3.jpeg","2024.07.08","RIZAPのエンジニアが、Kotlin Fest 2024に初参戦！ 【現場レポート】",[169,167,326,166],"Kotlin",{"to":328,"image":329,"date":330,"label":163,"title":331,"tags":332},"/recruit/articles/entries/214","https://rizap-tech.g.kuroco-img.app/v=1775010941/files/user/recruit/contents/thumbnail/n85f436f2c015_af56f353d133349dd6a246109af54da9.jpeg","2025.12.02","育てる力がDXを動かす ― RIZAP流・エンジニア育成ノウハウ【RubyWorld Conference 2025登壇レポート】",[166,167,169,263,305,252],1776738991125]