菜鸟教程小白 发表于 2022-12-11 18:51:25

ios - Phonegap Build cordova-plugin-facebook4插件在iOS上不起作用


                                            <p><p>我正在创建一个 <code>phonegap</code> 构建应用程序,其中包含一个 <code>facebook 登录</code>。
下面是一些细节。
- 该应用程序有一个登录 facebook 按钮</p>

<ul>
<li><p>它使用cordova-plugin-facebook4插件(<a href="https://www.npmjs.com/package/cordova-plugin-facebook4" rel="noreferrer noopener nofollow">https://www.npmjs.com/package/cordova-plugin-facebook4</a>)</p></li>
<li><p>集成代码如下:</p></li>
</ul>

<pre><code>facebookConnectPlugin.login( [&#34;public_profile&#34;],
    function ( userData ) {
      alert( &#34;login&#34; );
      //fetch user info using graph api
      facebookConnectPlugin.api( &#34;me/?fields=id,name,email,gender&#34;, [&#34;email&#34;, &#34;public_profile&#34;],
            function ( result ) {
                alert( &#34;login success&#34; );
                //store access token in local storage
                facebookConnectPlugin.getAccessToken( function ( token ) {
                  console.log( &#34;Token: &#34; + token );
                } );
            },
            function ( error ) {
                alert( &#34;Failed: &#34; + error );
            } );
    }, function ( error ) { alert( &#34;error&#34; ); }
);
</code></pre>

<ul>
<li>以上代码在安卓应用上运行良好。</li>
</ul>

<p><strong>- 上述代码在 iOS 应用中不起作用</strong></p>

<p>用于测试的设备:iPad mini iOS 10.x 版。</p>

<hr/>

<p>在developer.facebook.com上,iOS平台的应用设置如下:</p>

<p>捆绑 ID:与 phonegap 的 config.xml 中的小部件 ID 相同</p>

<p>iPhone 商店 ID:空</p>

<p>url方案后缀:空</p>

<p>ipad 商店 ID:空</p>

<p>单点登录切换:是</p>

<hr/>

<p>以下是 iOS iPad 的当前行为:
1. 用户在 iOS 应用中点击使用 Facebook 登录
2. 用户被带到 safari 浏览器中的 facebook 权限页面
3. 用户输入用户名和密码
4. 请求用户许可,用户点击“确认”
5. Safari 显示一个弹出窗口询问“在应用程序中打开?”
6.用户点击打开
7. 用户被带到相同的应用程序和相同的页面,并显示相同的登录链接。</p>

<p>请注意,控件根本不会传回以继续执行脚本,这几乎是应用程序从头开始重新启动。</p>

<p>Safari 网络检查器没有显示任何错误。</p>

<p>Mac 上的 GapDebug(我使用的是 virtualbox Yosemite mac 版本)没有显示任何错误。 </p>

<p>请帮忙,因为我现在不太确定,我还缺少什么。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我知道回答这个问题很晚,但它可能有助于其他人解决这个问题。所以这里是解决方案</p>

<pre><code>&lt;meta http-equiv=&#34;Content-Security-Policy&#34; content=&#34;default-src * gap://ready; style-src &#39;self&#39; &#39;unsafe-inline&#39;; img-src &#39;self&#39; data:; script-src * &#39;unsafe-inline&#39; &#39;unsafe-eval&#39;&#34;&gt;
</code></pre>

<p>在 index.html 中添加它。 <strong>gap://ready</strong> 对于 iOS 10 是必需的</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Phonegap Build cordova-plugin-facebook4插件在iOS上不起作用,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42055366/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42055366/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Phonegap Build cordova-plugin-facebook4插件在iOS上不起作用