1
- I""g <h2 id="demo">Demo</h2>
1
+ I"Rg <h2 id="demo">Demo</h2>
2
2
3
3
<p><strong><a href="https://github.com/poos/BlogDemo">本文所有代码 Demo 地址</a></strong></p>
4
4
187
187
188
188
<span class="kn">import</span> <span class="s">'package:flutter/services.dart'</span><span class="o">;</span>
189
189
190
- <span class="kd">class</span> <span class="nc">Package</span> <span class="o ">{</span>
190
+ <span class="kd">class</span> <span class="nc">Package</span> <span class="p ">{</span>
191
191
<span class="kd">static</span> <span class="kd">const</span> <span class="n">MethodChannel</span> <span class="n">_channel</span> <span class="o">=</span>
192
- <span class="kd">const</span> <span class="n">MethodChannel</span><span class="o ">(</span><span class="s">'package'</span><span class="o ">);</span>
192
+ <span class="kd">const</span> <span class="n">MethodChannel</span><span class="p ">(</span><span class="s">'package'</span><span class="p ">);</span>
193
193
194
- <span class="kd">static</span> <span class="n">Future</span><span class="o "><</span><span class="kt">String</span><span class="o ">></span> <span class="kd">get</span> <span class="n">platformVersion</span> <span class="n ">async</span> <span class="o ">{</span>
194
+ <span class="kd">static</span> <span class="n">Future</span><span class="p "><</span><span class="kt">String</span><span class="p ">></span> <span class="kd">get</span> <span class="n">platformVersion</span> <span class="kd ">async</span> <span class="p ">{</span>
195
195
<span class="c1">//调用方法并且等待返回</span>
196
- <span class="kd">final</span> <span class="kt">String</span> <span class="n">version</span> <span class="o">=</span> <span class="n ">await</span> <span class="n">_channel</span><span class="o">.</span><span class="na">invokeMethod</span><span class="o ">(</span><span class="s">'getPlatformVersion'</span><span class="o ">);</span>
197
- <span class="k">return</span> <span class="n">version</span><span class="o ">;</span>
198
- <span class="o ">}</span>
199
- <span class="o ">}</span>
196
+ <span class="kd">final</span> <span class="kt">String</span> <span class="n">version</span> <span class="o">=</span> <span class="k ">await</span> <span class="n">_channel</span><span class="o">.</span><span class="na">invokeMethod</span><span class="p ">(</span><span class="s">'getPlatformVersion'</span><span class="p ">);</span>
197
+ <span class="k">return</span> <span class="n">version</span><span class="p ">;</span>
198
+ <span class="p ">}</span>
199
+ <span class="p ">}</span>
200
200
</pre></td></tr></tbody></table></code></pre></div></div>
201
201
202
202
<div class="language-dart highlighter-rouge"><div class="highlight"><pre class="highlight"><code><table class="rouge-table"><tbody><tr><td class="rouge-gutter gl"><pre class="lineno">1
226
226
<span class="ss">#import</span> <span class="s">"LoginPlugin.h"</span>
227
227
228
228
<span class="nd">@implementation</span> <span class="n">LoginPlugin</span>
229
- <span class="o">+</span> <span class="o ">(</span><span class="kt">void</span><span class="o ">)</span><span class="nl">registerWithRegistrar:</span><span class="o ">(</span><span class="n">NSObject</span><span class="o "><</span><span class="n">FlutterPluginRegistrar</span><span class="o ">>* )</span><span class="n">registrar</span> <span class="o ">{</span>
230
- <span class="n">FlutterMethodChannel</span><span class="o">*</span> <span class="n">channel</span> <span class="o">=</span> <span class="o ">[</span><span class="n">FlutterMethodChannel</span>
229
+ <span class="o">+</span> <span class="p ">(</span><span class="kt">void</span><span class="p ">)</span><span class="nl">registerWithRegistrar:</span><span class="p ">(</span><span class="n">NSObject</span><span class="p "><</span><span class="n">FlutterPluginRegistrar</span><span class="p ">></span><span class="o">*</span><span class="p"> )</span><span class="n">registrar</span> <span class="p ">{</span>
230
+ <span class="n">FlutterMethodChannel</span><span class="o">*</span> <span class="n">channel</span> <span class="o">=</span> <span class="p ">[</span><span class="n">FlutterMethodChannel</span>
231
231
<span class="nl">methodChannelWithName:</span><span class="err">@</span><span class="s">"login"</span>
232
- <span class="nl">binaryMessenger:</span><span class="o ">[</span><span class="n">registrar</span> <span class="n">messenger</span><span class="o ">]];</span>
233
- <span class="n">LoginPlugin</span><span class="o">*</span> <span class="n">instance</span> <span class="o">=</span> <span class="o ">[[</span><span class="n">LoginPlugin</span> <span class="n">alloc</span><span class="o ">]</span> <span class="n">init</span><span class="o ">];</span>
234
- <span class="o ">[</span><span class="n">registrar</span> <span class="nl">addMethodCallDelegate:</span><span class="n">instance</span> <span class="nl">channel:</span><span class="n">channel</span><span class="o ">];</span>
235
- <span class="o ">}</span>
232
+ <span class="nl">binaryMessenger:</span><span class="p ">[</span><span class="n">registrar</span> <span class="n">messenger</span><span class="p ">]];</span>
233
+ <span class="n">LoginPlugin</span><span class="o">*</span> <span class="n">instance</span> <span class="o">=</span> <span class="p ">[[</span><span class="n">LoginPlugin</span> <span class="n">alloc</span><span class="p ">]</span> <span class="n">init</span><span class="p ">];</span>
234
+ <span class="p ">[</span><span class="n">registrar</span> <span class="nl">addMethodCallDelegate:</span><span class="n">instance</span> <span class="nl">channel:</span><span class="n">channel</span><span class="p ">];</span>
235
+ <span class="p ">}</span>
236
236
237
- <span class="o">-</span> <span class="o ">(</span><span class="kt">void</span><span class="o ">)</span><span class="nl">handleMethodCall:</span><span class="o ">(</span><span class="n">FlutterMethodCall</span><span class="o">*)</span><span class="n">call</span> <span class="nl">result:</span><span class="o ">(</span><span class="n">FlutterResult</span><span class="o ">)</span><span class="n">result</span> <span class="o ">{</span>
238
- <span class="k">if</span> <span class="o ">([</span><span class="err">@</span><span class="s">"getPlatformVersion"</span> <span class="nl">isEqualToString:</span><span class="n">call</span><span class="o">.</span><span class="na">method</span><span class="o ">])</span> <span class="o ">{</span>
237
+ <span class="o">-</span> <span class="p ">(</span><span class="kt">void</span><span class="p ">)</span><span class="nl">handleMethodCall:</span><span class="p ">(</span><span class="n">FlutterMethodCall</span><span class="o">*</span><span class="p"> )</span><span class="n">call</span> <span class="nl">result:</span><span class="p ">(</span><span class="n">FlutterResult</span><span class="p ">)</span><span class="n">result</span> <span class="p ">{</span>
238
+ <span class="k">if</span> <span class="p ">([</span><span class="err">@</span><span class="s">"getPlatformVersion"</span> <span class="nl">isEqualToString:</span><span class="n">call</span><span class="o">.</span><span class="na">method</span><span class="p ">])</span> <span class="p ">{</span>
239
239
<span class="c1">//调用你需要调用的原生方法</span>
240
240
<span class="c1">//resulut 返回你需要返回的信息</span>
241
- <span class="o ">}</span> <span class="k">else</span> <span class="o ">{</span>
242
- <span class="n">result</span><span class="o ">(</span><span class="n">FlutterMethodNotImplemented</span><span class="o ">);</span>
243
- <span class="o ">}</span>
244
- <span class="o ">}</span>
241
+ <span class="p ">}</span> <span class="k">else</span> <span class="p ">{</span>
242
+ <span class="n">result</span><span class="p ">(</span><span class="n">FlutterMethodNotImplemented</span><span class="p ">);</span>
243
+ <span class="p ">}</span>
244
+ <span class="p ">}</span>
245
245
<span class="nd">@end</span>
246
246
</pre></td></tr></tbody></table></code></pre></div></div>
247
247
@@ -266,10 +266,10 @@ dependencies:
266
266
4
267
267
5
268
268
</pre></td><td class="rouge-code"><pre><span class="c1">//some file</span>
269
- <span class="kt">void</span> <span class="nf">_onPressed</span><span class="p">(</span><span class="o"> )</span> <span class="n ">async</span> <span class="o ">{</span>
270
- <span class="kd">var</span> <span class="n">batter</span> <span class="o">=</span> <span class="n ">await</span> <span class="n">Login</span><span class="o">.</span><span class="na">getBatteryLevel</span><span class="o ">;</span>
271
- <span class="n">print</span><span class="o ">(</span><span class="n">batter</span><span class="o ">);</span>
272
- <span class="o ">}</span>
269
+ <span class="kt">void</span> <span class="nf">_onPressed</span><span class="p">()</span> <span class="kd ">async</span> <span class="p ">{</span>
270
+ <span class="kd">var</span> <span class="n">batter</span> <span class="o">=</span> <span class="k ">await</span> <span class="n">Login</span><span class="o">.</span><span class="na">getBatteryLevel</span><span class="p ">;</span>
271
+ <span class="n">print</span><span class="p ">(</span><span class="n">batter</span><span class="p ">);</span>
272
+ <span class="p ">}</span>
273
273
</pre></td></tr></tbody></table></code></pre></div></div>
274
274
275
275
<h3 id="现有原生项目嵌入-flutter">现有原生项目嵌入 Flutter</h3>
@@ -398,20 +398,20 @@ flutter_application_path <span class="o">=</span> <span class="s1">'path/to/my_f
398
398
399
399
<span class="c1">// void main() => runApp(MyApp());</span>
400
400
401
- <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="o">) </span> <span class="o">= ></span> <span class="n">runApp</span><span class="o ">(</span><span class="n">_widgetForRoute</span><span class="o ">(</span><span class="n">window</span><span class="o">.</span><span class="na">defaultRouteName</span><span class="o ">));</span>
401
+ <span class="kt">void</span> <span class="nf">main</span><span class="p">() </span> <span class="o">= </span><span class="p"> ></span> <span class="n">runApp</span><span class="p ">(</span><span class="n">_widgetForRoute</span><span class="p ">(</span><span class="n">window</span><span class="o">.</span><span class="na">defaultRouteName</span><span class="p ">));</span>
402
402
403
- <span class="n">Widget</span> <span class="nf">_widgetForRoute</span><span class="p">(</span><span class="kt">String</span> <span class="n">route</span><span class="o ">)</span> <span class="o ">{</span>
404
- <span class="k">switch</span> <span class="o ">(</span><span class="n">route</span><span class="o ">)</span> <span class="o ">{</span>
403
+ <span class="n">Widget</span> <span class="nf">_widgetForRoute</span><span class="p">(</span><span class="kt">String</span> <span class="n">route</span><span class="p ">)</span> <span class="p ">{</span>
404
+ <span class="k">switch</span> <span class="p ">(</span><span class="n">route</span><span class="p ">)</span> <span class="p ">{</span>
405
405
<span class="k">case</span> <span class="s">'route1'</span><span class="o">:</span>
406
- <span class="k">return</span> <span class="n">MyApp</span><span class="o ">();</span>
406
+ <span class="k">return</span> <span class="n">MyApp</span><span class="p ">();</span>
407
407
<span class="k">case</span> <span class="s">'route2'</span><span class="o">:</span>
408
- <span class="k">return</span> <span class="n">Container</span><span class="o ">(</span><span class="nl">color:</span> <span class="n">Colors</span><span class="o">.</span><span class="na">red</span><span class="o ">,</span> <span class="nl">width:</span> <span class="mi">100</span><span class="o ">,</span> <span class="nl">height:</span> <span class="mi">100</span><span class="o ">,);</span>
408
+ <span class="k">return</span> <span class="n">Container</span><span class="p ">(</span><span class="nl">color:</span> <span class="n">Colors</span><span class="o">.</span><span class="na">red</span><span class="p ">,</span> <span class="nl">width:</span> <span class="mi">100</span><span class="p ">,</span> <span class="nl">height:</span> <span class="mi">100</span><span class="p ">,);</span>
409
409
<span class="k">default</span><span class="o">:</span>
410
- <span class="k">return</span> <span class="n">Center</span><span class="o ">(</span>
411
- <span class="nl">child:</span> <span class="n">Text</span><span class="o ">(</span><span class="s">'Unknown route: </span><span class="si">$route</span><span class="s">'</span><span class="o ">,</span> <span class="nl">textDirection:</span> <span class="n">TextDirection</span><span class="o">.</span><span class="na">ltr</span><span class="o ">),</span>
412
- <span class="o ">);</span>
413
- <span class="o ">}</span>
414
- <span class="o ">}</span>
410
+ <span class="k">return</span> <span class="n">Center</span><span class="p ">(</span>
411
+ <span class="nl">child:</span> <span class="n">Text</span><span class="p ">(</span><span class="s">'Unknown route: </span><span class="si">$route</span><span class="s">'</span><span class="p ">,</span> <span class="nl">textDirection:</span> <span class="n">TextDirection</span><span class="o">.</span><span class="na">ltr</span><span class="p ">),</span>
412
+ <span class="p ">);</span>
413
+ <span class="p ">}</span>
414
+ <span class="p ">}</span>
415
415
</pre></td></tr></tbody></table></code></pre></div></div>
416
416
417
417
<p><strong>原生调用如下:</strong></p>
0 commit comments