Native.js for iOS封装一条通过JS语法直接调用Native Objective-C接口通道,通过plus. ...
<div id="article_content" class="article_content clearfix"><link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
<div id="content_views" class="htmledit_views">
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">方法:</span></strong></span></h2>
<ul><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.importClass">importClass</a>: 导入Objective-C类对象</li><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.newObject">newObject</a>: 创建实例对象</li><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.deleteObject">deleteObject</a>: 销毁实例对象</li><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.invoke">invoke</a>: 调用对象(类对象/示例对象)的方法</li><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.implements">implements</a>: 实现代理的方法</li><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.currentWebview">currentWebview</a>: 获取当前Webview窗口对象的native层UIWebview实例对象</li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">对象:</span></strong></span></h2>
<ul><li><ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.ClassObject">ClassObject</a>: Objective-C类对象</li><li><ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.InstanceObject">InstanceObject</a>: Objective-C实例对象</li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">权限:</span></strong></span></h2>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">5+功能模块(permissions)</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffa0a0">"permissions"</span><span style="color:#ffffff">:{</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffa0a0">"Invocation"</span><span style="color:#ffffff">:</span> <span style="color:#ffffff">{</span>
<span style="color:#ffa0a0">"description"</span><span style="color:#ffffff">:</span> <span style="color:#ffa0a0">"Native.js"</span>
<span style="color:#ffffff">}</span>
<span style="color:#ffffff">}</span>
<span style="color:#ffffff">}</span>
</code></span></span></code></pre>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_8-->importClass</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">导入Objective-C类对象</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">ClassObject</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">importClass</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> classname </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">说明:</span></strong></span></h2>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">导入类对象后,就可以通过.操作符直接调用对象(类对象/实例对象)的方法。 通过.操作符号调用方法时,不需要使用":"来分割参数。 注意:导入类对象将会消耗较多的系统资源,不应该导入过多的类对象,可以使用plus.ios.invoke()来调用未导入类实例对象的方法。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>classname: <em>( String | <ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.InstanceObject">InstanceObject</a> ) 必选 </em>要导入的Objective-C类名 <p style="margin-left:0;"><span style="color:#474747;">如果指定的类名不存在,则导入类失败,不会抛出异常。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p><ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.ClassObject">ClassObject</a><span style="color:#474747;"><span style="background-color:#f6f4f2;"> : Objective-C类对象,如果导入类对象失败则返回null。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 导入GKLocalPlayer</span>
<span style="color:#f0e68c"><strong>var</strong></span> <span style="color:#98fb98">GKLocalPlayer</span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">importClass</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"GKLocalPlayer"</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_12-->newObject</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">创建实例对象</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">InstanceObject</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">newObject</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> classname</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff">..</span><span style="color:#ffffff">args </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>classname: <em>( String ) 必选 </em>要创建实例对象的类名 <p style="margin-left:0;"><span style="color:#474747;">如果指定的类名不存在,则创建对象失败,不会抛出异常。</span></p> </li><li>args: <em>( Object ) 可选 </em>创建实例对象的构造参数 <p style="margin-left:0;"><span style="color:#474747;">如果指定的构造参数类型不区配,则创建对象失败,不会抛出异常。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p><ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.InstanceObject">InstanceObject</a><span style="color:#474747;"><span style="background-color:#f6f4f2;"> : Objective-C实例对象,如果创建对象失败则返回null。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 创建GKLocalPlayer类的一个实例对象</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> localplayer</span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">newObject</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"GKLocalPlayer"</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_15-->deleteObject</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">销毁实例对象</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> obj </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>obj: <em>( Object ) 必选 </em>要销毁的实例对象 <p style="margin-left:0;"><span style="color:#474747;">如果obj对象不是有效的实例对象,则不执行销毁对象操作,不会抛出异常。 如果不执行销毁实例对象操作,在页面关闭时会自动执行销毁对象的操作。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p>void<span style="color:#474747;"><span style="background-color:#f6f4f2;"> : 无</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 创建GKLocalPlayer类的一个实例对象</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> localplayer</span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">newObject</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"GKLocalPlayer"</span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#87ceeb">// 销毁GKLocalPlayer示例对象</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> localplayer </span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_17-->invoke</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">调用对象(类对象/示例对象)的方法</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">Object</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">invoke</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> obj</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> name</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff">...</span><span style="color:#ffffff"> args </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>obj: <em>( <ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.InstanceObject">InstanceObject</a> | <ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.ClassObject">ClassObject</a> | String ) 必选 </em>调用方法所属的对象,也可以是类的名称 <p style="margin-left:0;"><span style="color:#474747;">如果obj为实例对象(InstanceObject)类型,则调用的是实例对象的方法; 如果obj为类对象(ClassObject)类型,则调用的是类的静态方法; 如果obj为字符串(String)类型,其值必须是类的名称,则调用的是类的静态方法;</span></p> </li><li>name: <em>( String ) 必选 </em>要调用的方法名称 <p style="margin-left:0;"><span style="color:#474747;">方法名称中使用":"分隔参数。 如果指定的方法名称不存在,则调用方法失败,不会抛出异常。</span></p> </li><li>args: <em>( Object ) 可选 </em>调用方法的参数 <p style="margin-left:0;"><span style="color:#474747;">如果指定的参数数目或类型不区配,则调用方法失败,不会抛出异常。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p>Object<span style="color:#474747;"><span style="background-color:#f6f4f2;"> : 调用方法的返回值,如果调用方法失败,则返回null。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 创建UIAlertView类的实例对象</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> view </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">newObject</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"UIAlertView"</span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 设置提示对话上的内容,这里的方法名称中必须包含':'字符</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">invoke</span><span style="color:#ffffff">(</span><span style="color:#ffffff">view</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:"</span>
<span style="color:#ffffff">,</span> <span style="color:#ffa0a0">"自定义标题"</span> <span style="color:#87ceeb">// 提示框标题</span>
<span style="color:#ffffff">,</span> <span style="color:#ffa0a0">"使用NJS的原生弹出框,可自定义弹出框的标题、按钮"</span><span style="color:#87ceeb">// 提示框上显示的内容</span>
<span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>null</strong></span> <span style="color:#87ceeb">// 操作提示框后的通知代理对象,暂不设置</span>
<span style="color:#ffffff">,</span> <span style="color:#ffa0a0">"确定(或者其他字符)"</span> <span style="color:#87ceeb">// 提示框上取消按钮的文字</span>
<span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>null</strong></span> <span style="color:#ffffff">);</span> <span style="color:#87ceeb">// 提示框上其它按钮的文字,设置为null表示不显示</span>
<span style="color:#87ceeb">// 调用show方法显示提示对话框,在JS中使用()语法调用对象的方法</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">invoke</span><span style="color:#ffffff">(</span><span style="color:#ffffff">view</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"show"</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_21-->implements</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">实现代理的方法</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">InstanceObject</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#f0e68c"><strong>implements</strong></span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> name</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> obj </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>name: <em>( String ) 必选 </em>代理的名称,也可以是自定的字符串名称 <p style="margin-left:0;"><span style="color:#474747;">如果name为自定的字符串名称,则自定义一个代理;</span></p> </li><li>obj: <em>( Object ) 必选 </em>JSON对象类型,代理实现方法的定义 <p style="margin-left:0;"><span style="color:#474747;">JSON对象中key值为代理方法的名称,使用":"分割参数;value值为Function,方法参数必须与代理方法中的":"区配。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p><ahref="https://www.html5plus.org/doc/zh_cn/ios.html#plus.ios.InstanceObject">InstanceObject</a><span style="color:#474747;"><span style="background-color:#f6f4f2;"> : 代理实例对象。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 登录到游戏中心</span>
<span style="color:#87ceeb">// 监听用户登录状态变更事件</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> nc </span><span style="color:#ffffff">=</span> <span style="color:#98fb98">NSNotificationCenter</span><span style="color:#ffffff">.</span><span style="color:#ffffff">defaultCenter</span><span style="color:#ffffff">();</span>
<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">delegate</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
nc</span><span style="color:#ffffff">.</span><span style="color:#ffffff">removeObservernameobject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">delegate</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"GKPlayerAuthenticationDidChangeNotificationName"</span><span style="color:#ffffff">,</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span><span style="color:#ffffff">
delegate </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">implements</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"NSObject"</span><span style="color:#ffffff">,{</span><span style="color:#ffa0a0">"authenticationChanged:"</span><span style="color:#ffffff">:</span><span style="color:#ffffff">authenticationChanged</span><span style="color:#ffffff">});</span><span style="color:#ffffff">
nc</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addObserverselectornameobject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">delegate</span><span style="color:#ffffff">,</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">newObject</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"@selector"</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"authenticationChanged:"</span><span style="color:#ffffff">),</span>
<span style="color:#ffa0a0">"GKPlayerAuthenticationDidChangeNotificationName"</span><span style="color:#ffffff">,</span>
<span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 获取游戏玩家共享实例对象</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> localplayer </span><span style="color:#ffffff">=</span> <span style="color:#98fb98">GKLocalPlayer</span><span style="color:#ffffff">.</span><span style="color:#ffffff">localPlayer</span><span style="color:#ffffff">();</span>
<span style="color:#87ceeb">// 判断游戏玩家是否已经登录认证</span>
<span style="color:#f0e68c"><strong>if</strong></span> <span style="color:#ffffff">(</span><span style="color:#ffffff"> localplayer</span><span style="color:#ffffff">.</span><span style="color:#ffffff">plusGetAttribute</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"isAuthenticated"</span><span style="color:#ffffff">)</span> <span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// 玩家已登录认证,获取玩家信息</span><span style="color:#ffffff">
playerInformation</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> localplayer </span><span style="color:#ffffff">);</span><span style="color:#ffffff">
bLogin </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>true</strong></span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span> <span style="color:#f0e68c"><strong>else</strong></span> <span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// 玩家未登录认证,发起认证请求</span><span style="color:#ffffff">
localplayer</span><span style="color:#ffffff">.</span><span style="color:#ffffff">authenticateWithCompletionHandler</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">);</span><span style="color:#ffffff">
eStart</span><span style="color:#ffffff">.</span><span style="color:#ffffff">innerText </span><span style="color:#ffffff">=</span> <span style="color:#ffa0a0">"登录中..."</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 释放使用的对象</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">localplayer</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">nc</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_24-->currentWebview</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">获取当前Webview窗口对象的native层UIWebview实例对象</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">InstanceObject</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">currentWebview</span><span style="color:#ffffff">();</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">说明:</span></strong></span></h2>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">UIWebview对象的API请参考Apple开发文档</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">无</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.InstanceObject">InstanceObject</a><span style="color:#474747;"><span style="background-color:#f6f4f2;"> : Webview窗口对象的native层实例对象,如果调用方法失败,则返回null。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> nwv</span><span style="color:#ffffff">=</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">;</span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 获取当前Webview窗口的UIWebview实例对象</span><span style="color:#ffffff">
nwv </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">currentWebview</span><span style="color:#ffffff">();</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 使用Native.js调用Webview的loadUrl方法跳转页面</span>
<span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff"> loadUrl</span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 导入UIWebview、NSURLRequest、NSURL类</span>
<span style="color:#f0e68c"><strong>var</strong></span> <span style="color:#98fb98">Webview</span> <span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">importClass</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"UIWebview"</span><span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong>var</strong></span> <span style="color:#98fb98">NSURLRequest</span> <span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#f0e68c"><strong>import</strong></span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'NSURLRequest'</span><span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> NSURL </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#f0e68c"><strong>import</strong></span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'NSURL'</span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 获取当前Webview对象的实例</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> wv </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">currentWebview</span><span style="color:#ffffff">();</span>
<span style="color:#87ceeb">// 创建请求对象</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> req </span><span style="color:#ffffff">=</span> <span style="color:#98fb98">NSURLRequest</span><span style="color:#ffffff">.</span><span style="color:#ffffff">requestWithURL</span><span style="color:#ffffff">(</span><span style="color:#ffffff">NSURL</span><span style="color:#ffffff">.</span><span style="color:#98fb98">URLWithString</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">'http://www.dcloud.io/'</span><span style="color:#ffffff">));</span>
<span style="color:#87ceeb">// 跳转页面</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">invoke</span><span style="color:#ffffff">(</span><span style="color:#ffffff">wv</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"loadRequest:"</span><span style="color:#ffffff">,</span><span style="color:#ffffff">req</span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 释放对象(可选)</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">req</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">wv</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span><span style="color:#ffffff">
获取当前Webview窗口对象的native层UIWebview实例对象</span><span style="color:#f0e68c"><strong><br/></strong></span>
<span style="color:#f0e68c"><strong><button</strong></span> <span style="color:#bdb76b"><strong>onclick</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"</span><span style="color:#ffffff">loadUrl</span><span style="color:#ffffff">()</span><span style="color:#ffa0a0">"</span><span style="color:#f0e68c"><strong>></strong></span><span style="color:#ffffff">Native.js跳转页面</span><span style="color:#f0e68c"><strong></button></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_27-->ClassObject</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">Objective-C类对象</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>interface</strong></span> <span style="color:#98fb98">ClassObject</span> <span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffffff">}</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">说明:</span></strong></span></h2>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">Objective-C类对象,可通过其属性获取类的常量,可通过方法来操作类的静态方法,也通过new方法来创建类的实例对象。 对于类的静态方法,则直接通过.后面跟随方法名称调用。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 调用ios的文字转语音</span>
<span style="color:#f0e68c"><strong>var</strong></span> <span style="color:#98fb98">AVSpeechSynthesizer</span> <span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">importClass</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"AVSpeechSynthesizer"</span><span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> sppech </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>new</strong></span> <span style="color:#98fb98">AVSpeechSynthesizer</span><span style="color:#ffffff">();</span> <span style="color:#87ceeb">// 实例化AVSpeechSynthesizer类对象</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_29-->InstanceObject</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">Objective-C实例对象</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>interface</strong></span> <span style="color:#98fb98">InstanceObject</span> <span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> plusGetAttribute</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> name </span><span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong>function</strong></span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> plusSetAttribute</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> name</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> value </span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// ...</span>
<span style="color:#ffffff">}</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">说明:</span></strong></span></h2>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">Objective-C实例对象,可通过其方法来操作示例的变量和方法。 注意:必须通过plusGetAttribute()方法读取示例对象的属性值,通过plusSetAttribute()方法设置示例对象的属性值。</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">方法:</span></strong></span></h2>
<ul><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.InstanceObject.plusGetAttribute">plusGetAttribute</a>: 获取Objective-C实例对象的属性</li><li><ahref="https://blog.csdn.net/qq_40575646/article/details/122841569#plus.ios.InstanceObject.plusSetAttribute">plusSetAttribute</a>: 设置Objective-C示例对象的属性</li></ul>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_32-->plusGetAttribute</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">获取Objective-C实例对象的属性</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#98fb98">Object</span><span style="color:#ffffff"> insobj</span><span style="color:#ffffff">.</span><span style="color:#ffffff">plusGetAttribute</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> name </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>name: <em>( String ) 必选 </em>实例属性的名称 <p style="margin-left:0;"><span style="color:#474747;">如果指定的属性名称不存在,则返回null。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p>Object<span style="color:#474747;"><span style="background-color:#f6f4f2;"> : 属性的实例对象</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 登录到游戏中心</span>
<span style="color:#87ceeb">// 监听用户登录状态变更事件</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> nc </span><span style="color:#ffffff">=</span> <span style="color:#98fb98">NSNotificationCenter</span><span style="color:#ffffff">.</span><span style="color:#ffffff">defaultCenter</span><span style="color:#ffffff">();</span>
<span style="color:#f0e68c"><strong>if</strong></span><span style="color:#ffffff">(</span><span style="color:#ffffff">delegate</span><span style="color:#ffffff">){</span><span style="color:#ffffff">
nc</span><span style="color:#ffffff">.</span><span style="color:#ffffff">removeObservernameobject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">delegate</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"GKPlayerAuthenticationDidChangeNotificationName"</span><span style="color:#ffffff">,</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">}</span><span style="color:#ffffff">
delegate </span><span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">implements</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"NSObject"</span><span style="color:#ffffff">,{</span><span style="color:#ffa0a0">"authenticationChanged:"</span><span style="color:#ffffff">:</span><span style="color:#ffffff">authenticationChanged</span><span style="color:#ffffff">});</span><span style="color:#ffffff">
nc</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addObserverselectornameobject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">delegate</span><span style="color:#ffffff">,</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">newObject</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"@selector"</span><span style="color:#ffffff">,</span><span style="color:#ffa0a0">"authenticationChanged:"</span><span style="color:#ffffff">),</span>
<span style="color:#ffa0a0">"GKPlayerAuthenticationDidChangeNotificationName"</span><span style="color:#ffffff">,</span>
<span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 获取游戏玩家共享实例对象</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> localplayer </span><span style="color:#ffffff">=</span> <span style="color:#98fb98">GKLocalPlayer</span><span style="color:#ffffff">.</span><span style="color:#ffffff">localPlayer</span><span style="color:#ffffff">();</span>
<span style="color:#87ceeb">// 判断游戏玩家是否已经登录认证</span>
<span style="color:#f0e68c"><strong>if</strong></span> <span style="color:#ffffff">(</span><span style="color:#ffffff"> localplayer</span><span style="color:#ffffff">.</span><span style="color:#ffffff">plusGetAttribute</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"isAuthenticated"</span><span style="color:#ffffff">)</span> <span style="color:#ffffff">)</span> <span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// 玩家已登录认证,获取玩家信息</span><span style="color:#ffffff">
playerInformation</span><span style="color:#ffffff">(</span><span style="color:#ffffff"> localplayer </span><span style="color:#ffffff">);</span><span style="color:#ffffff">
bLogin </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>true</strong></span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span> <span style="color:#f0e68c"><strong>else</strong></span> <span style="color:#ffffff">{</span>
<span style="color:#87ceeb">// 玩家未登录认证,发起认证请求</span><span style="color:#ffffff">
localplayer</span><span style="color:#ffffff">.</span><span style="color:#ffffff">authenticateWithCompletionHandler</span><span style="color:#ffffff">(</span><span style="color:#f0e68c"><strong>null</strong></span><span style="color:#ffffff">);</span><span style="color:#ffffff">
eStart</span><span style="color:#ffffff">.</span><span style="color:#ffffff">innerText </span><span style="color:#ffffff">=</span> <span style="color:#ffa0a0">"登录中..."</span><span style="color:#ffffff">;</span>
<span style="color:#ffffff">}</span>
<span style="color:#87ceeb">// 释放使用的对象</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">localplayer</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">deleteObject</span><span style="color:#ffffff">(</span><span style="color:#ffffff">nc</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
<h1 style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><!--LINK#0_34-->plusSetAttribute</span></span></h1>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;">设置Objective-C示例对象的属性</span></span></p>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#f0e68c"><strong>void</strong></span><span style="color:#ffffff"> insobj</span><span style="color:#ffffff">.</span><span style="color:#ffffff">plusSetAttribute</span><span style="color:#ffffff">(</span> <span style="color:#98fb98">String</span><span style="color:#ffffff"> name</span><span style="color:#ffffff">,</span> <span style="color:#98fb98">Object</span><span style="color:#ffffff"> value </span><span style="color:#ffffff">);</span>
</code></span></span></code></pre>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">参数:</span></strong></span></h2>
<ul><li>name: <em>( String ) 必选 </em>要设置的属性名称 <p style="margin-left:0;"><span style="color:#474747;">如果指定的属性名称不存在,则操作不生效,不会抛出异常。</span></p> </li><li>value: <em>( Object ) 必选 </em>要设置的属性值 <p style="margin-left:0;"><span style="color:#474747;">如果指定的属性值类型不区配,则操作不生效,不会抛出异常。</span></p> </li></ul>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">返回值:</span></strong></span></h2>
<p>void<span style="color:#474747;"><span style="background-color:#f6f4f2;"> : 无</span></span></p>
<h2 style="margin-left:.8em;"><span style="color:#f13a0e;"><strong><span style="background-color:#f6f4f2;">示例:</span></strong></span></h2>
<pre class="has" style="margin-left:0;"><code class="language-prettyprint"><span style="background-color:#333333"><span style="color:#474747"><code>
<span style="color:#cccccc"><!DOCTYPE html></span>
<span style="color:#f0e68c"><strong><html></strong></span>
<span style="color:#f0e68c"><strong><head></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>charset</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"utf-8"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><meta</strong></span> <span style="color:#bdb76b"><strong>name</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"viewport"</span> <span style="color:#bdb76b"><strong>content</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"initial-scale=1.0, maximum-scale=1.0, user-scalable=no"</span><span style="color:#f0e68c"><strong>/></strong></span>
<span style="color:#f0e68c"><strong><title></strong></span><span style="color:#ffffff">iOS Native.js</span><span style="color:#f0e68c"><strong></title></strong></span>
<span style="color:#f0e68c"><strong><script</strong></span> <span style="color:#bdb76b"><strong>type</strong></span><span style="color:#ffffff">=</span><span style="color:#ffa0a0">"text/javascript"</span><span style="color:#f0e68c"><strong>></strong></span>
<span style="color:#87ceeb">// 监听plusready事件</span><span style="color:#ffffff">
document</span><span style="color:#ffffff">.</span><span style="color:#ffffff">addEventListener</span><span style="color:#ffffff">(</span> <span style="color:#ffa0a0">"plusready"</span><span style="color:#ffffff">,</span> <span style="color:#f0e68c"><strong>function</strong></span><span style="color:#ffffff">(){</span>
<span style="color:#87ceeb">// 扩展API加载完毕,现在可以正常调用扩展API</span>
<span style="color:#87ceeb">// 调用ios的文字转语音</span>
<span style="color:#f0e68c"><strong>var</strong></span> <span style="color:#98fb98">AVSpeechSynthesizer</span> <span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">importClass</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"AVSpeechSynthesizer"</span><span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> sppech </span><span style="color:#ffffff">=</span> <span style="color:#f0e68c"><strong>new</strong></span> <span style="color:#98fb98">AVSpeechSynthesizer</span><span style="color:#ffffff">();</span>
<span style="color:#f0e68c"><strong>var</strong></span> <span style="color:#98fb98">AVSpeechUtterance</span> <span style="color:#ffffff">=</span><span style="color:#ffffff"> plus</span><span style="color:#ffffff">.</span><span style="color:#ffffff">ios</span><span style="color:#ffffff">.</span><span style="color:#ffffff">importClass</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"AVSpeechUtterance"</span><span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong>var</strong></span><span style="color:#ffffff"> utterance </span><span style="color:#ffffff">=</span><span style="color:#98fb98">AVSpeechUtterance</span><span style="color:#ffffff">.</span><span style="color:#ffffff">speechUtteranceWithString</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"共产主义接班人"</span><span style="color:#ffffff">);</span>
<span style="color:#87ceeb">// 设置语速</span><span style="color:#ffffff">
utterance</span><span style="color:#ffffff">.</span><span style="color:#ffffff">plusSetAttribute</span><span style="color:#ffffff">(</span><span style="color:#ffa0a0">"rate"</span><span style="color:#ffffff">,</span><span style="color:#cd5c5c">30.1</span><span style="color:#ffffff">);</span><span style="color:#ffffff">
sppech</span><span style="color:#ffffff">.</span><span style="color:#ffffff">speakUtterance</span><span style="color:#ffffff">(</span><span style="color:#ffffff">utterance</span><span style="color:#ffffff">);</span>
<span style="color:#ffffff">},</span> <span style="color:#f0e68c"><strong>false</strong></span> <span style="color:#ffffff">);</span>
<span style="color:#f0e68c"><strong></script></strong></span>
<span style="color:#f0e68c"><strong></head></strong></span>
<span style="color:#f0e68c"><strong><body></strong></span>
<span style="color:#f0e68c"><strong></body></strong></span>
<span style="color:#f0e68c"><strong></html></strong></span>
</code></span></span></code></pre>
<p style="margin-left:0;"><span style="color:#474747;"><span style="background-color:#f6f4f2;"><ahref="https://uniapp.dcloud.io/use-html5plus">uni-app使用plus注意事项</a></span></span></p>
</div>
</div>
<div id="treeSkill"></div>
页:
[1]