小编Rea*_*lly的帖子

在iOS上检测Internet连接的最简单方法?

我知道这个问题似乎是许多其他问题的愚蠢,但是,我觉得这个简单的案例并没有得到很好的解释.来自Android和BlackBerry背景,HTTPUrlConnection如果没有可用连接,立即发出请求失败.这似乎是完全理智的行为,我很惊讶地发现NSURLConnection在iOS中没有效仿它.

我知道Apple(以及其他扩展它的人)提供了一个Reachability帮助确定网络状态的类.我很高兴第一次看到这一点并完全期望看到类似的内容bool isNetworkAvailable(),但令我惊讶的是,我发现了一个复杂的系统,需要通知注册和回调,以及一堆看似不必要的细节.肯定有更好的办法.

我的应用程序已经优雅地处理连接失败,包括没有连接.用户会收到失败通知,然后应用程序继续运行.

因此我的要求很简单:我可以在所有HTTP请求之前调用单个同步函数来确定我是否应该打扰实际发送请求.理想情况下,它不需要设置,只返回一个布尔值.

这在iOS上真的不可能吗?

internet-connection nsurlconnection reachability ios

147
推荐指数
6
解决办法
14万
查看次数

在FragmentPagerAdapter中阻止WebView重新加载?

我有一个FragmentPagerAdapter,用于显示大约6个选项卡,所有选项卡都从Web服务器加载数据.其中一个选项卡包含一个从我的服务器加载图像的WebView.生成映像的服务器端成本很高,因此我希望减少重新加载WebView的调用次数.对于非web视图选项卡,我已经能够拯救我的国家(对于那些,只是一个简单的数组),并恢复他们的标签得到刷卡通过.

问题:

  • 每次使用FragmentPagerAdapter重新滑动时,WebView都会重新加载,从而导致网络服务器上的重新加载时间和负载都很高.

考虑的解决方案:

  • 使用ViewPager.setOffscreenPageLimit() 这是有问题的,因为它会强制加载更多选项卡,即使它们永远不会被查看.这在我的服务器上是不必要的昂贵.
  • 使用WebView.saveState()WebView.restoreState() 文档已更新,以使其清除显示状态不再在此处维护,因此这对此方案不再有用.
  • 将我的活动设置为:android:configChanges ="keyboardHidden | orientation | screenSize"这适用于旋转的情况,但不影响ViewPager/FragmentPagerAdapter滑动标签的情况.

听起来像WebView.saveState()的旧行为本来就是完美的......

android android-webview android-fragments

9
推荐指数
1
解决办法
3534
查看次数

Android Widgets:updateAppWidget()未调用onDataSetChanged

我有一个基于ListView的小部件运行良好,它依赖于JSON Web服务调用来填充自己.我有一个很好的刷新按钮,并强制从网络重新加载.我通过使用自定义广播来执行此操作,然后调用onDataSetChanged(),然后按顺序调用updateAppWidget().我发现当Android自动更新窗口小部件时(基于设置我的XML定义的时间间隔),似乎只调用了updateAppWidget(),并且我的onDataSetChanged()函数从不运行,导致更新的时间戳(我在每个updateAppWidget()调用中更新,但是陈旧的数据.

如何强制Android以给定的间隔调用或触发onDataSetChanged()?

android widget android-widget

8
推荐指数
1
解决办法
5464
查看次数

Android GridLayout内部的水平居中视图

我们正在编写一个针对ICS +的应用程序,并认为Gr​​idLayout是最好的布局范例,但似乎很少有关于它的文章,我们遇到了一些对齐问题.

<GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row_background"
    android:rowCount="1"
    android:columnCount="3"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:useDefaultMargins="true"
    android:background="@drawable/list_item_bg">

    <ImageView
        android:id="@+id/visibilityIcon"
        android:layout_row="0"
        android:layout_column="0"
        android:src="@drawable/visibility_icon" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>

    <ImageView
        android:id="@+id/windIcon"
        android:layout_row="0"
        android:layout_column="1"
        android:src="@drawable/wind_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>

    <ImageView
        android:id="@+id/crosswindIcon"
        android:layout_row="0"
        android:layout_column="2"
        android:src="@drawable/cloud_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"/>

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

但是,左侧2图标保持左对齐,最右侧图标以剩余空间居中.

基本上我们需要做的是将每列的大小指定为总屏幕大小的1/3(自3列).我认为这就是GridLayout所做的,但看起来'wrap_content'会导致这种行为(有意义),但'match_parent'会导致第一列填满整个屏幕,而不是填充其单元格,这是我预期的行为.

我们似乎已经尝试过重力,layout_gravity等的所有组合,但要么我们从根本上做错了什么,要么发现了GridLayout的限制.

谢谢你的帮助!

android alignment grid-layout xml-layout android-4.0-ice-cream-sandwich

7
推荐指数
1
解决办法
1万
查看次数

Google Analytics for Android v2广告系列跟踪无效

我花了很多时间在这上面,现在我把头发拉了出来.我使用的是Google Analytics Android SDK v2.我已经使用了几个月,并使用了收集数据EasyTracker.没问题.

我最近尝试实施广告系列跟踪,一切似乎都没问题,但在市场上连续数周的推介下载后,我看到没有数据.我最近研究了如何测试并找到了这个: stackoverflow.com/questions/5890914/how-to-test-android-referral-tracking

我正在使用v2服务,所以在我的AndroidManifest.xml中,我添加了这个:

<!-- Used for install referral measurement -->
    <service android:name="com.google.analytics.tracking.android.CampaignTrackingService" />

    <receiver
        android:name="com.google.analytics.tracking.android.CampaignTrackingReceiver"
        android:exported="true" >
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

来源:https://developers.google.com/analytics/devguides/collection/android/v2/

我没有其他接收器INSTALL_REFERRER.

当我从亚行运行测试时,我的应用程序中没有任何类型的日志.当我只是安装应用程序并观察Logcat时,我看到以下内容,这似乎表明某些内容至少已经联系起来:

03-22 16:11:10.412: W/GAV2(12444): Thread[GAThread,5,main]: Service unavailable (code=1), will retry.
03-22 16:11:10.443: I/GAV2(12444): Thread[GAThread,5,main]: No campaign data found.
03-22 16:11:15.420: W/GAV2(12444): Thread[Service Reconnect,5,main]: Service unavailable (code=1), using local store.
Run Code Online (Sandbox Code Playgroud)

请帮我弄清楚我在这里缺少什么.这似乎是很多困难比它应该是.谢谢!

android google-analytics broadcastreceiver google-play

7
推荐指数
1
解决办法
2656
查看次数

iOS 7:iPhone应用程序的正确iPad图标?

我们只有iPhone的应用程序,但通常用户将其安装在iPad上.借助iOS7和资产组,它不再尊重我们的新iPad图标尺寸(76px和152px).如果我们不使用资产组并使用我们的旧图标(72px),它将加载它们,但它们显然看起来缩放.如果我们将76px重命名为Icon-72和Icon-72 @ 2x,则会出现同样的问题.

有没有一种方法可以在仅限iPhone的应用程序中获得iOS 7尺寸的iPad图标?

谢谢!

iphone ipad ios ios7

7
推荐指数
2
解决办法
2458
查看次数

以编程方式检索支持给定文件类型的已安装应用程序列表

虽然很明显我们无法在iOS上检索已安装的应用程序列表,但是有什么技巧可以让我们确定为给定文件类型注册的应用程序列表吗?也就是说,用户将在Open In ...菜单中看到该特定文件类型的列表.canOpenURL只返回一个布尔值,但理想情况下它会返回一个受支持的已安装应用程序列表.有任何想法吗?

iphone protocol-handler ipad ios uidocumentinteraction

5
推荐指数
2
解决办法
2587
查看次数

Facebook移动广告应用程序安装未显示在广告系列报告中

我已经成功实现了Facebook SDK和AppEvents,以报告我的Android应用程序的安装情况。我已经验证它在仪表板上注册了最后一次安装数据,并且在Facebook上的“应用程序事件”选项卡中看到了数千个fb_mobile_activate_app事件。

我一直在应用程序上运行付费广告系列,但是,即使自添加SDK以来超过24小时,我仍收到0次安装的报告。由于我的预算基于广告的效果,因此没有任何数据似乎很奇怪。

我在这里缺少什么吗?

android facebook facebook-ads-api facebook-sdk-3.1

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

从快捷方式启动活动也始终启动主要活动

我已经构建了一个更改用户壁纸的应用程序.我希望添加一个Android快捷方式,这样用户就可以更改自己的壁纸而无需完全打开应用程序(主要用例是将其绑定到Nova Launcher之类的手势,允许您为每个手势选择快捷方式) .

我有一切工作,有一个大问题.每次触发快捷方式时,我的自定义操作都会发生,但主启动活动也会启动!这显然是不可取的,我无法弄清楚发生了什么.

这是ShortcutActivity代码:

public class ShortcutActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    final Intent intent = getIntent();
    final String action = intent.getAction();

    if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) {
        setupShortcut();
        finish();
        return;
    } else {
        Toast.makeText(this, "Do something interesting.", Toast.LENGTH_SHORT).show();
        finish();
    }
}

void setupShortcut() {
    Intent shortcutIntent = new Intent("CHANGE");
    shortcutIntent.setClass(this, getClass());

    Intent intent = new Intent();
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getString(R.string.shortcut_title));
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);

    Parcelable iconResource = Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher);
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource);

    setResult(RESULT_OK, intent);
}
}
Run Code Online (Sandbox Code Playgroud)

这是我的(简化)清单:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/title_activity" …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-intent android-activity

5
推荐指数
2
解决办法
2652
查看次数

在macOS 10.11+中保留localStorage for WebView

WebView在我的macOS应用程序中嵌入了一个并在其中加载了一个页面.当用户与页面进行交互时,更改将存储在localStorage中(通过在Chrome中进行相同的更改来确认),但似乎WebViews不会在macOS上保留localStorage.

早期的答案(多年前)表明使用私有API,后来完全删除.在macOS中是否真的没有办法将localStorage保留为WebView?这看起来很疯狂.

macos webkit local-storage

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

如何在iOS Facebook SDK上删除应用请求?

使用iOS SDK在Facebook上发布应用程序请求时,开发人员指南要求开发人员在应用程序打开时清除请求.

删除请求

当用户通过单击接受请求定向到您的应用程序时,您必须在接受请求后删除该请求.点击后请求不会自动删除,因此开发人员有责任在接受请求后将其清除. https://developers.facebook.com/docs/requests/#deleting

是否有清除所有通知或其他类似帮助的功能?

facebook-graph-api facebook-ios-sdk

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