小编Chr*_*ris的帖子

Facebook setExtendedAccessToken()和FB.Event.subscribe('auth.login')

我正在开发我的第一个facebook应用程序.我将setExtendedAccessToken()函数与FB.Event.subscribe('auth.login')结合使用时遇到问题.

我的js代码看起来像这样:

window.fbAsyncInit = function() {

    // init the FB JS SDK
    FB.init({
      appId      : 'XXX', // App ID from the App Dashboard
      channelUrl : 'http://domain.tld/app/channel.php', // Channel File for x-domain communication
      frictionlessRequests: true,
      cookie: true, 
      xfbml: true
    });

    FB.Event.subscribe('auth.login', function(response) {
        $('#loginSpinner').show();
        $('#loginFacebook').hide();
        window.location = "http://domain.tld/app/?first_login";
    });      

};
Run Code Online (Sandbox Code Playgroud)

auth.login事件应仅在用户首次登录时触发.此PHP代码也应仅在首次登录时触发:

// triggers on first login
if (isset($_GET['first_login'])) {
    if ($me) {
        $facebook->setExtendedAccessToken();
        $friends = $facebook->api('/me/friends');
        $friends = $friends['data'];
        if (!empty($friends)) {
        //sql
        }
        $permissions = $facebook->api("/me/permissions");

        if( array_key_exists('publish_actions', …
Run Code Online (Sandbox Code Playgroud)

facebook

5
推荐指数
1
解决办法
533
查看次数

android:layout_below没有正常工作

我有RelativeLayout三个观点.两者都TextViews应该在右侧,ImageView而秒应该在第一个之下TextView.

码:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#bdbdbd"
    android:paddingBottom="15dp"
    android:paddingLeft="5dp"
    android:paddingRight="5dp"
    android:paddingTop="15dp" >

    <ImageView
        android:id="@+id/avatar"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:layout_centerVertical="true"
        android:src="@drawable/default_avatar" />

    <TextView
        android:id="@+id/username"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/avatar"
        android:text="Chris"
        android:textSize="16sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/university"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/username"
        android:layout_toRightOf="@id/avatar"
        android:text="Oxford"
        android:textSize="13sp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

结果: 在此输入图像描述

android:layout_centerVertical="true"从第一个TextView中删除后,一切都按预期工作(除了它不垂直). 在此输入图像描述

为什么这样,我怎样才能使第一个TextView垂直居中?

android

5
推荐指数
1
解决办法
6033
查看次数

多次调整一张图像的大小

我正在将给定的图像(保存在磁盘上)调整为不同的大小:

var image = 'photos/pic';
var sizes = [1440, 1080, 720, 480];

for (var i = 0; i < sizes.length; i++) {
    sharp(image + '.jpg')
    .resize(sizes[i], sizes[i])
    .toFile(image + '-' + sizes[i] + '.jpg');       
}
Run Code Online (Sandbox Code Playgroud)

这按预期工作,但我想还有改进的余地。

  • for 循环会导致任何问题吗?如果是,有没有更好的方法来解决这个问题?
  • 等待生成的图片调整大小并将其用于下一个调整大小过程会更快吗?假设原始图片是2000x2000. 如果有的话,从调整720x720480x480而不是2000x2000到的速度改进480x480是什么?考虑到我必须先读取720x720文件并等待调整大小完成。
  • 我应该在“主”节点线程上调整大小还是分叉子进程?无论如何,它们都是异步运行的,对吗?

node.js sharp

5
推荐指数
1
解决办法
2584
查看次数

empty()返回错误的结果

$user = new User(1);

var_dump($user->ID);
if (empty($user->ID))
    echo "empty";

// output string(2) "77" empty
Run Code Online (Sandbox Code Playgroud)

那么为什么true即使$uservar不为空,empty()也会返回?

我的User类的相关部分:

class User {
    protected $data = null;

    public function __construct($userID) {
        // sql select
        $this->data = $sqlResult;
    }

    // ...

    public function __get($name) {
        if (isset($this->data[$name]))
            return $this->data[$name];
        else
            return null;
    }

}
Run Code Online (Sandbox Code Playgroud)

更新:

所以我更新了我的User类并添加了__isset()方法

public function __isset($name) {
        if (isset($this->data[$name]) && !empty($this->data[$name]))
                return true;
        else
                return false;
}
Run Code Online (Sandbox Code Playgroud)

这引出了另一个问题:当调用empty()我的非空var时empty($user->ID),它将返回false,但是当使用isset($user->ID)声明的var为空时(例如$user->ID = '')它也将返回false,因为它 …

php

4
推荐指数
1
解决办法
514
查看次数

在 &lt;item&gt; XML 中使用可绘制和 &lt;shape&gt;

是否可以使用带有可绘制对象和<shape>属性的 XML 背景资源?

所以我有这个按钮

        <Button
            android:layout_marginRight="5dp"
            android:id="@+id/send_button"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@drawable/send_button" />
Run Code Online (Sandbox Code Playgroud)

其中有一个后台send_button.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/ic_send_white_48dp" android:state_focused="true"/>
    <item android:drawable="@drawable/ic_send_white_48dp" android:state_pressed="true"/>
    <item android:drawable="@drawable/ic_send_black_48dp"/>

</selector>
Run Code Online (Sandbox Code Playgroud)

现在效果很好。但我还想在可绘制和圆角后面添加背景颜色,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <corners android:radius="4dp" />

    <gradient
        android:angle="270"
        android:endColor="#88b823"
        android:startColor="#b0dc54" />

</shape>
Run Code Online (Sandbox Code Playgroud)

那么是否可以将这两个 XML 资源结合起来呢?到目前为止我所尝试的只是显示可绘制对象而不是形状:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/ic_send_white_48dp" android:state_focused="true"/>
    <item android:drawable="@drawable/ic_send_white_48dp" android:state_pressed="true"/>
    <item android:drawable="@drawable/ic_send_black_48dp">
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
            <corners android:radius="4dp" />

            <gradient android:angle="270" 
                android:endColor="#88b823" 
                android:startColor="#b0dc54" />
        </shape>
    </item>

</selector>
Run Code Online (Sandbox Code Playgroud)

android

4
推荐指数
1
解决办法
9653
查看次数

minifyEnabled true会导致应用启动时崩溃

不幸的是XX已停止了.

我启动高效的应用程序,当我设置时,我会收到此消息

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

我没有任何额外的proguard规则(因为没有图书馆说明有必要).

我的依赖项看起来像这样:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.loopj.android:android-async-http:1.4.9'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'me.leolin:ShortcutBadger:1.1.4@aar'
    compile 'com.facebook.android:facebook-android-sdk:4.+'
    compile 'com.jraska:falcon:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)

我尝试的是添加

-keep class com.loopj.** {*;}
-keep class com.jraska.** {*;}
-keep class me.leolin.** {*;}
-keep class com.android.** {*;}
-keep class com.google.** {*;}
-keep class com.facebook.** {*;}
Run Code Online (Sandbox Code Playgroud)

我的proguard规则,但仍然是同样的错误.任何的想法?

android android-proguard

4
推荐指数
1
解决办法
4508
查看次数

如何获取数组的第一个元素 - jQuery

我有一个多维,我想获得第二维的第一个元素.

myArray[0]
Run Code Online (Sandbox Code Playgroud)

是我的第二个维度.我无法使用

myArray[0][0]
Run Code Online (Sandbox Code Playgroud)

因为我不知道第二维的关键(key = userID).知道如何在不知道密钥的情况下获取第一个元素吗?

arrays jquery multidimensional-array

3
推荐指数
1
解决办法
6153
查看次数

测试string是否包含带整数的括号

我想测试javascript中的字符串是否包含带有整数的正常括号

var str="(12) this is a test";
var pat=/(([\d]+))/;
if (pat.test(str)) 
    alert("true");
Run Code Online (Sandbox Code Playgroud)

工作正常,但当字符串看起来像这样时它也返回true

var str="12) test";
var str="(12 test";
Run Code Online (Sandbox Code Playgroud)

哪个应该返回false.

javascript regex

3
推荐指数
1
解决办法
2521
查看次数

在Google Play商店分布式应用程序中使用不同的付款方式

我想通过 Android 应用程序中的应用内购买来出售高级帐户。我可以使用不同的付款方式(例如 PayPal 和 Paymill)来代替 Google Play 应用内结算吗?

订阅付款似乎只允许使用 Google 提供的付款方式(https://developer.android.com/google/play/billing/billing_subscriptions.html# payment)。

in-app-purchase in-app-billing google-play

3
推荐指数
1
解决办法
4715
查看次数

CollapsingToolbarLayout / Toolbar褪色太早/太晚

我的CollapsingToolbarLayout无法正常工作。当我向下滚动一点时,图像1显示初始状态,图像2显示初始状态。过渡发生得太早了,它将最终出现在(在这种情况下)粉红色的空白空间。再次向上滚动时也会发生同样的情况。有什么办法解决吗?

我的布局:

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/activity_main_cover_height"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed">

      <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <ImageView
                android:id="@+id/backdrop"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:scaleType="centerCrop"
                app:layout_collapseMode="parallax" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:background="@color/transparent_background_dark"
                android:orientation="vertical"
                android:paddingLeft="@dimen/box_headline_padding"
                android:paddingStart="@dimen/box_headline_padding">

                <!-- ... -->

            </LinearLayout>

        </RelativeLayout>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="0dp"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <!-- ... -->
</android.support.v4.widget.NestedScrollView>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明在此处输入图片说明

android

3
推荐指数
1
解决办法
938
查看次数