应用内跳转指定账号

 val url = "https://www.facebook.com/Bouti.thai/"
 try {
     getPackageManager().getPackageInfo("com.facebook.katana", 0)
     val uri = Uri.parse("fb://facewebmodal/f?href=" + url)
     startActivity(Intent(Intent.ACTION_VIEW, uri))
 } catch (e: Exception) {
     startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
 }

url为facebook账号的直达连接 当手机未安装facebook app时走catch内容, 通过跳转手机浏览器显示facebook账号

startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/id_here")))

“id_here”应该是账号id,该方法是否可用还未知, 仅供参考

Facebook事件统计

1,按照下面链接, 先完成facebook相关集成相关操作
developers.facebook.com/docs/app-ev…

需要注意的是, 生成发布密钥散列并不是签名md5或hash, 操作如下

try {
    PackageInfo info = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
    for (Signature signature : info.signatures) {
        MessageDigest md = MessageDigest.getInstance("SHA");
        md.update(signature.toByteArray());
        String keyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
        Log.e(TAG, keyHash);
    }
} catch (Exception e) {
    Log.e(TAG, e.toString());
}

2, 统计事件分为自动统计、标准统计、手动统计

facebook本身提供了很多标准事件, 你只需要对照标准事件表, 选取对应的事件名称, 然后获取代码, 传递响应的值就可以了

里面有写地方用到了Currency单位,我按照搜到的java的Currency用法传递值,在购买成功的事件里会报错,导致该事件无法统计

Currency currency = Currency.getInstance(Locale.CHINESE);
logger.logPurchase(purchaseAmount, currency, params);

这样会报错,具体原因还没研究

Currency currencyObj = Currency.getInstance("CNY")

这样则不会
www.webmasterhome.cn/huilv/huobi… 这是各国货币码对照表

自定义事件则相对简单

只需按照这个格式完成,然后获取代码就可以了