在另一个应用程序或浏览器 [Titanium] 中打开 url
Open url in another application or in browser [Titanium]
我正在编写一个功能,需要在另一个应用程序 [如果安装在我的 phone] 中或在浏览器中打开 URL。
要在浏览器中打开URL,我可以使用Titanium.Platefor.openURL();
要打开我正在创建意图的应用程序。
var intent = Titanium.Android.createIntent({
packageName : appUrl,
action : Titanium.Android.ACTION_SEND,
data : url
});
intent.addCategory(Titanium.Android.CATEGORY_BROWSABLE);
Titanium.Android.currentActivity.startActivity(intent);
我一直卡在下面的地方:
如何将 url 传递给其他应用程序以打开 - 我尝试使用 url 传递 url : 'http://someurl' and data: 'http://someurl' - 但没有'帮助。我收到错误:找不到 Activity 来处理 Intent
如何查看应用是否安装?如果是 - 要求打开应用程序,如果不是 - 在浏览器中打开 url。
有人能帮忙吗?
提前致谢!
您可以使用 URL 架构和 android 中的 Titanium.Platefor.openURL();
方法来识别应用程序是否已安装。 (如果未安装应用程序,它将 return false)。
对于 ios,有一种方法可以识别 Titanium.Platform.canOpenURL()
。
你也可以将一些值传递给应用程序,例如,如果你打开 google 地图应用程序,源和目标在 ios 中打开,然后像这样调用
var strUrl = "http://maps.google.com/maps?saddr=" + Alloy.Globals.UserLocation.latitude + "," + Alloy.Globals.UserLocation.longitude + "&daddr=" + dLatitude + "," + dLongitude;
if (OS_IOS) {
strUrl = "comgooglemaps://?saddr=" + Alloy.Globals.UserLocation.latitude + "," + Alloy.Globals.UserLocation.longitude + "&daddr=" + dLatitude + "," + dLongitude + "&directionsmode=driving";
if (Titanium.Platform.canOpenURL(strUrl)) {
Ti.Platform.openURL(strUrl);
} else {
strUrl = "http://maps.google.com/maps?saddr=" + Alloy.Globals.UserLocation.latitude + "," + Alloy.Globals.UserLocation.longitude + "&daddr=" + dLatitude + "," + dLongitude;
Ti.Platform.openURL(strUrl);
}
} else {
var result = Ti.Platform.openURL(strUrl);
Ti.API.info('RESULT = ' + result);
}
再举一个例子..如果你想用给定的消息文本打开 whatsApp 应用程序。
var whatsappUrl = encodeURI('whatsapp://send?text=' + msgBody);
if (OS_IOS) {
if (Ti.Platform.canOpenURL(whatsappUrl)) {
Ti.Platform.openURL(whatsappUrl);
} else {
Ti.Platform.openURL("https://itunes.apple.com/ae/app/whatsapp-messenger/id310633997?mt=8");
}
} else {
var isSuccess = Ti.Platform.openURL(whatsappUrl);
if (!isSuccess) {
Ti.Platform.openURL("https://play.google.com/store/apps/details?id=com.whatsapp&hl=en");
}
}
希望这对你有帮助.. :)
谢谢
我正在编写一个功能,需要在另一个应用程序 [如果安装在我的 phone] 中或在浏览器中打开 URL。
要在浏览器中打开URL,我可以使用Titanium.Platefor.openURL();
要打开我正在创建意图的应用程序。
var intent = Titanium.Android.createIntent({
packageName : appUrl,
action : Titanium.Android.ACTION_SEND,
data : url
});
intent.addCategory(Titanium.Android.CATEGORY_BROWSABLE);
Titanium.Android.currentActivity.startActivity(intent);
我一直卡在下面的地方:
如何将 url 传递给其他应用程序以打开 - 我尝试使用 url 传递 url : 'http://someurl' and data: 'http://someurl' - 但没有'帮助。我收到错误:找不到 Activity 来处理 Intent
如何查看应用是否安装?如果是 - 要求打开应用程序,如果不是 - 在浏览器中打开 url。
有人能帮忙吗?
提前致谢!
您可以使用 URL 架构和 android 中的 Titanium.Platefor.openURL();
方法来识别应用程序是否已安装。 (如果未安装应用程序,它将 return false)。
对于 ios,有一种方法可以识别 Titanium.Platform.canOpenURL()
。
你也可以将一些值传递给应用程序,例如,如果你打开 google 地图应用程序,源和目标在 ios 中打开,然后像这样调用
var strUrl = "http://maps.google.com/maps?saddr=" + Alloy.Globals.UserLocation.latitude + "," + Alloy.Globals.UserLocation.longitude + "&daddr=" + dLatitude + "," + dLongitude;
if (OS_IOS) {
strUrl = "comgooglemaps://?saddr=" + Alloy.Globals.UserLocation.latitude + "," + Alloy.Globals.UserLocation.longitude + "&daddr=" + dLatitude + "," + dLongitude + "&directionsmode=driving";
if (Titanium.Platform.canOpenURL(strUrl)) {
Ti.Platform.openURL(strUrl);
} else {
strUrl = "http://maps.google.com/maps?saddr=" + Alloy.Globals.UserLocation.latitude + "," + Alloy.Globals.UserLocation.longitude + "&daddr=" + dLatitude + "," + dLongitude;
Ti.Platform.openURL(strUrl);
}
} else {
var result = Ti.Platform.openURL(strUrl);
Ti.API.info('RESULT = ' + result);
}
再举一个例子..如果你想用给定的消息文本打开 whatsApp 应用程序。
var whatsappUrl = encodeURI('whatsapp://send?text=' + msgBody);
if (OS_IOS) {
if (Ti.Platform.canOpenURL(whatsappUrl)) {
Ti.Platform.openURL(whatsappUrl);
} else {
Ti.Platform.openURL("https://itunes.apple.com/ae/app/whatsapp-messenger/id310633997?mt=8");
}
} else {
var isSuccess = Ti.Platform.openURL(whatsappUrl);
if (!isSuccess) {
Ti.Platform.openURL("https://play.google.com/store/apps/details?id=com.whatsapp&hl=en");
}
}
希望这对你有帮助.. :) 谢谢