Sun*_*nil 2 dart flutter flutter-test flutter-packages flutter-ios
我使用了 Url_launcher 包;如果应用程序安装了其他浏览器,我想在 facebook 应用程序中打开 Facebook 链接。这在 Android 中很好地工作,但在 IOS 中它只打开 Facebook 应用程序而不是链接。
代码是:
String digital_url= "https://facebook.com/AliForDigitalIsrael/";
new ListTile(
leading: new SvgPicture.asset(
'assets/images/ic_menu_fb.svg',
height: 24.0,
width: 24.0,
color: Colors.black54,
),
title: new Text(
Strings.fbdigital,
textDirection: TextDirection.rtl,
),
onTap: () async {
var fbUrl =
"fb://facewebmodal/f?href=" + Strings.digital_url;
launchFacebook(fbUrl, Strings.digital_url);
hideDrawer();
},
),
Future<void> launchFacebook(String fbUrl,String fbWebUrl)
async {
try {
bool launched = await launch(fbUrl, forceSafariVC: false);
print("Launched Native app $launched");
if (!launched) {
await launch(fbWebUrl, forceSafariVC: false);
print("Launched browser $launched");
}
} catch (e) {
await launch(fbWebUrl, forceSafariVC: false);
print("Inside catch");
}
}
Run Code Online (Sandbox Code Playgroud)
我的工作职能:
void _launchSocial(String url, String fallbackUrl) async {
// Don't use canLaunch because of fbProtocolUrl (fb://)
try {
bool launched =
await launch(url, forceSafariVC: false, forceWebView: false);
if (!launched) {
await launch(fallbackUrl, forceSafariVC: false, forceWebView: false);
}
} catch (e) {
await launch(fallbackUrl, forceSafariVC: false, forceWebView: false);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在 onPressed 或 onTab 中:
_launchSocial('fb://profile/408834569303957', 'https://www.facebook.com/dorockxl')
Run Code Online (Sandbox Code Playgroud)
不要忘记将 fbYOURPAGEID 添加到 Info.plist 中的 CFBundleURLSchemes 数组:
注意:您可以使用https://lookup-id.com来查找您页面的 id
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb408834569303957</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您无需额外设置即可将此方法用于 Twitter 和 Instagram。Url 足以打开这些原生应用:
_launchSocial('https://www.instagram.com/YOURNAME/', '')
_launchSocial('https://twitter.com/YOURNAME', '')
| 归档时间: |
|
| 查看次数: |
5052 次 |
| 最近记录: |