深层链接与Google+共享,但链接不执行任何操作

时间:2013-12-20 02:22:19

标签: android google-plus deep-linking

我正在尝试在http://developers.google.com/+/mobile/android/share/deep-link之后使用Google+中的深层链接到Android应用。

我可以分享到Google+。帖子中的链接是“可点击的”(在触摸期间突出显示),但在发布时不做任何操作。此外,帖子包含可疑的“未定义”文本行。

sample http://raw.github.com/concreterose/TestDeepLink/master/README_ASSETS/sample_share.png

我在Google Developers Console项目凭据中启用了深层链接。

我正在使用使用Scopes.PLUS_LOGIN创建的已登录PlusClient,通过以下方式发布:

Intent shareIntent = new PlusShare.Builder(this, plusClient)
    .setText("Testing deep link")
    .setType("text/plain")
    .setContentDeepLinkId("deeplink",
         "title",
         "description",
         Uri.parse(thumbnailUrl))
    .getIntent();
startActivityForResult(shareIntent, 0);

我不确定我是否需要所有这些,同时试图让事情有效:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

处理活动(作为清单中的第一个活动给出):

    <activity android:name=".ParseDeepLinkActivity">
        <intent-filter>
            <action android:name="com.google.android.apps.plus.VIEW_DEEP_LINK" />
            <data android:scheme="vnd.google.deeplink" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
    </activity>

是:

public class ParseDeepLinkActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i(TAG, "onCreate");
        throw new RuntimeException("got here");
    }
}

我正在使用发布密钥库构建并在几个运行4.4的真实设备上进行测试。

我试过了:

  • 使用PlusShare.Builder(activity)构造函数(不含plusClient),无需更改。

  • 使用addCallToAction(label, uri, deeplink)代替setContentDeepLinkId。没有号召性用语按钮,点击帖子会转到uri,而不是深层链接。

  • 三重检查“深层链接:已启用”已在开发人员控制台中正确设置。

  • 没有proguard建设,没有变化。

  • 卸载应用程序然后点击链接(打算打开游戏商店条目),什么都不做。

  • 使用其他密钥签名。加号登录失败(正如预期的那样)。

  • 使用不同版本的游戏服务(4.0.30 vs 3.2。+)。

  • adb shell setprop log.tag.GooglePlusPlatform VERBOSE不会生成任何日志消息。

  • 获取我的API访问令牌并验证它有auth/plus.login,确实如此。

谁能告诉我我做错了什么?谢谢!

更新:此功能现已正常运行,显然已通过Google Play服务更新修复。

2 个答案:

答案 0 :(得分:2)

事实证明,这是一个已知问题,将在下一次Google+更新中解决:

Google+ Interactive shares on android are broken in version 4.2.4.58179886

答案 1 :(得分:0)

通常最好共享一个用schema.org标记的URL,而不是传递标题,描述和图像。因为没有URL,所以链接永远不会在web上点击(你需要使用setContentURL来实现) - 但它应该在Android上打开应用程序。

那就是说,undefined确实看起来很可疑。有两个相关的事情,第一个是链接不起作用,第二个描述不再一般在普通股中显示。有一个已知的Android交互式帖子的问题,希望在新的一年早些时候解决,我想知道这是否也影响了深度链接的共享。

要缩小范围,您是否可以尝试使用setContentURL中的schema.org标记的网址(例如https://developers.google.com/+/web/snippet/examples/thing),并在setContentDeeplink调用上为标题,图片和说明传递null?