【问题标题】:How can I handle correctly facebook embed element on webview android app?如何在 webview android 应用程序上正确处理 facebook 嵌入元素?
【发布时间】:2021-01-12 09:22:32
【问题描述】:
我使用 web 视图元素创建了基于原生 android web 的应用程序。
该应用程序依赖于我的网站,并且在我的网站中有 facebook 嵌入元素(使用 Elementor Pro [WORDPRESS] 添加的) - link to website
Facebook 元素:
我有几个问题:
- 是否可以在 facebook 应用程序中处理 facebook 登录并喜欢我的页面(如果存在)?
- 如何以正确的方式处理它 - 当用户单击此元素时,Web 视图会以桌面视图模式打开 facebook 登录页面,而我希望它处于移动视图模式。
看看:
- 登录后webview显示返回我网站的链接,返回网站后如果用户按下返回按钮,他会再次看到该链接,如何解决?
- 当用户按下任何帖子的点赞按钮时,Web 视图会显示带有数字“1”的空白屏幕:
我需要您的帮助来处理这个 facebook 元素。
提前谢谢大家!
【问题讨论】:
标签:
android
facebook
web
android-webview
web-based
【解决方案1】:
经过 2 天的研究,我找到了可能的解决方案。
此解决方案不允许用户给我的 Facebook 页面点个赞,如果安装,它只允许在 Facebook 应用程序中查看我的 Facebook 页面:
String pageUrl = String.format("fb://facewebmodal/f?href=%s", Constants.OUKITEL_FACEBOOK_PAGE_URL);//replace OUKITEL_FACEBOOK_URL with your page url
Intent operation = new Intent(Intent.ACTION_VIEW, Uri.parse(pageUrl));
try {
if(isPackageInstalled(ctx, packageName)) {
operation.setPackage(packageName);
}
ctx.startActivity(operation);
}catch (Exception e) {
Toast.maketext(MainActivity.this, "Facebook app is not installed")
}
而 'isPackageInstalled' 是一个私有方法:
public static boolean isPackageInstalled(Context ctx, String packageName) {
PackageManager pm = ctx.getPackageManager();
try {
return pm.getApplicationInfo(packageName, 0).enabled;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}