{"id":26188201,"url":"https://github.com/waitaction/cordova-plugin-flutter","last_synced_at":"2025-04-15T01:01:23.063Z","repository":{"id":57208250,"uuid":"246861752","full_name":"waitaction/cordova-plugin-flutter","owner":"waitaction","description":"该插件可以让cordova应用与flutter在同一个cordova项目里进行混合开发","archived":false,"fork":false,"pushed_at":"2023-02-22T14:13:54.000Z","size":531,"stargazers_count":18,"open_issues_count":2,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-03T19:40:30.005Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waitaction.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-12T14:57:06.000Z","updated_at":"2024-01-06T01:16:44.000Z","dependencies_parsed_at":"2024-10-24T22:16:55.032Z","dependency_job_id":"8ddef53e-1b60-401e-a0c9-930c98db722c","html_url":"https://github.com/waitaction/cordova-plugin-flutter","commit_stats":{"total_commits":37,"total_committers":4,"mean_commits":9.25,"dds":0.4054054054054054,"last_synced_commit":"dff83c1d09b6879eda2f29e056fa057e15310326"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitaction%2Fcordova-plugin-flutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitaction%2Fcordova-plugin-flutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitaction%2Fcordova-plugin-flutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waitaction%2Fcordova-plugin-flutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waitaction","download_url":"https://codeload.github.com/waitaction/cordova-plugin-flutter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248904638,"owners_count":21180835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-11T23:57:31.917Z","updated_at":"2025-04-15T01:01:22.565Z","avatar_url":"https://github.com/waitaction.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cordova应用与flutter混合开发\n\n让你的cordova应用能与flutter进行混合开发\n\n| 开发环境        | 版本     |\n| --------------- | -------- |\n| cordova         | ≥ 10.0.0 |\n| cordova-android | ≥ 9.0.0  |\n| cordova-ios     | ≥ 5.0.0  |\n| flutter         | ≥ 1.17.0 |\n\n示例代码：`https://github.com/waitaction/cordovaFlutterDemo`\n## 安装\n\n安装cordova-plugin-flutter插件\n\n``` shell\ncordova plugin add cordova-plugin-flutter\n```\n\n\u003e 安装完之后会产生`flutter_module`文件夹，不要去修改flutter_module文件夹名称\n\u003e 安装过程可能会卡住，等一小会就正常\n\n编译android\n\n``` shell\ncordova build android\n```\n\n\u003e 编译过程中会下载jar包，可能需要几分钟时间...\n\n编译ios\n\n``` shell\ncordova build ios\n```\n\n\u003e 编译过程会下载缺失的flutter framework，可能需要几分钟时间...\n\n## 在`cordova`调用`flutter`\n\n**flutter.init** `使用前初始化，尽可能早的初始化，在deviceready之后，且只初始一次`\n\n``` javascript\nflutter.init(function(){\n    console.log(\"初始化成功\");\n},function(err){\n    console.log(\"初始化失败\");\n})\n```\n\n下面的方法都要在`flutter.init`之后才能调用\n\n**flutter.open** `打开flutter`\n\n``` javascript\n//请在flutter.init方法之后调用\nflutter.open(\n    undefined,\n    function (result) {\n        console.log(\"打开flutter成功\");\n        console.log(result);\n    }, function (err) {\n        console.log(\"打开flutter失败\");\n    }\n);\n\nflutter.open(\n    '/HomePage', //flutter路由名称    \n    function (result) {\n        console.log(\"打开flutter成功\");\n    },\n    function (err) {\n        console.log(\"打开flutter失败\");\n    }\n);\n```\n\n对应flutter路由名称\n\n``` dart\n @override\n  Widget build(BuildContext context) {\n    return MaterialApp(\n      title: 'Flutter Demo',\n      theme: ThemeData(\n        primarySwatch: Colors.blue,\n        platform: TargetPlatform.iOS,\n      ),\n      routes: {\n        '/HomePage': (BuildContext context) =\u003e new HomePage(),\n        '/NextPage': (BuildContext context) =\u003e new NextPage(),\n      },\n      initialRoute: '/HomePage', //初始化路由为first页面\n      // onGenerateRoute: AppRouter.router.generator,\n    );\n  }\n```\n\n## 在`flutter`返回结果给`cordova`的\n\n在`flutter`调用\n\n`dart`代码：\n\n``` dart\nimport 'package:flutter_module/cordova.dart';\n//在需要的地方调用\nawait CordovaPlatform.finish({\"format\": \"yyyy年MM月dd日\"});\n```\n\n## 示例代码\n\n``` js\nflutter.init(function () {\n    console.log(\"初始化成功\");\n    flutter.open(null,function (result) {\n        console.log(\"打开flutter成功\");\n        //result 是flutter返回的结果，此处代码会输出 {\"format\":\"yyyy年MM月dd日\"}\n        console.log(\"result\")\n    }, function (err) {\n        console.log(err);\n    })\n}, function (err) {\n\n});\n```\n\n## 编译\n\n编译ios时，需要在虚拟机的调试请使用`cordova build ios`编译\n\n开发完成后，需要上架到app store，请使用`cordova build ios --release` 编译\n\n\u003e 如果使用`cordova build ios --release`命令编译，使用xcode运行在虚拟机会提示`Building for iOS Simulator, but the embedded framework 'Flutter.framework' was built for iOS`的错误\n\n## 如何调试`flutter`代码\n\n使用 `visual studio code`，安装`flutter`扩展，打开`cordova项目路径/flutter_module`目录，使用`visual studio code`调试工具创建`Flutter: Attach to Device`，运行app后附加调试。\n\n![因网络原因，截图'/screenshot/1590851583248.jpg'无法加载](/screenshot/1590851583248.jpg \"截图\")\n\n![因网络原因，截图'/screenshot/1590851885254.jpg'无法加载](/screenshot/1590851885254.jpg \"截图\")\n\n## 其它\n\n感谢 `@zhangjianying` 大神编写的ios代码和ios构建脚本.\n\n目前仍有许多不足之处，由于工作繁忙，其它细节，你可以 [fork一份代码](https://github.com/waitaction/cordova-plugin-flutter) 进行优化。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitaction%2Fcordova-plugin-flutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaitaction%2Fcordova-plugin-flutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaitaction%2Fcordova-plugin-flutter/lists"}