我正在尝试在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服务更新修复。
答案 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?