我有一个应用程序,我必须从服务器获取消息.服务器通过SMS发送消息.由于iPhone应用程序无法以编程方式接收SMS,因此我已经注册了自定义URL方案,并在我的消息前面加上自定义URL值,例如ex : mymsg://.
这在大多数情况下都可以正常工作.每当手机收到短信并点击回复按钮时,它会转到回复状态,原始信息会显示为我可以点击的链接,它将我带到应用程序.出于某种原因,有时此消息不可点击.也就是说,当我点击消息时,它不会启动应用程序,或者只是消息不可点击.然后,如果我重新启动手机,该链接可以再次点击,我可以点击启动我的应用程序的链接.有谁知道可能是什么原因?
-chinnadurai
当他/她从iTunes Store的链接安装应用程序时,是否可以将用户导航到我们应用程序的特定屏幕.
假设我通过电子邮件将我们的应用程序的链接分享给某个朋友,如果该应用程序已经安装在他/她的设备上,那么我们的应用程序将通过自定义网址方案启动,但如果尚未安装应用程序,那么他将被重定向到iTunes商店以及将在首次运行应用程序时使用的其他参数,并且在成功安装应用程序之后,应该启动在itunes链接参数中传递的选项.
步骤:URL单击应用程序 - >应用程序未安装,因此在Safari中打开它 - >服务器将重定向到app的itunes链接以及启动选项作为附加参数 - >转到iTunes下载和安装应用程序 - >启动应用程序通过LaunchOptions或自定义URL方案 - >处理启动选项并导航到适当的屏幕
url-scheme itunes-store launching-application custom-url ios
我正在开发一个管理我自己的URL方案的应用程序,所以我实现了回调:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
{
// Get our launch URL
if (launchOptions != nil)
{
// Launch dictionary has data
NSURL* launchURL = [launchOptions objectForKey: UIApplicationLaunchOptionsURLKey];
// Parse the URL
NSString* hostString = [launchURL host];
blah blah blah...
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但我需要启动调用者应用程序(即打开URL的应用程序).所以我的问题是,这可能吗?
我一直在玩,UIApplicationLaunchOptionsSourceApplicationKey但我无法通过其应用程序Bundle ID启动应用程序.我可以吗?
我也尝试了未记录launchApplicationWithIdentifier:的UIApplication,但我需要一个真正的解决方案,似乎解决方法只适用于模拟器.
有任何想法吗?谢谢!
我想知道是否可以使用插件中的永久链接设置而不是使用默认的非永久链接网址.
例如,我正在使用插件flickr photostream,可从这里下载http://wordpress.org/extend/plugins/flickr-photostream,由其他人编写,但我想知道我自己的插件和补丁这个创建更好的永久链接,而不是http://www.domain.co.uk/?flickrps=2在页面之间前进和后退.
有人向我建议这个网址,我试图将其修补到上面的插件中,但没有任何运气来实现我的目标.
Wordpress插件:如何添加自定义URL句柄
我设法通过谷歌找到这个,似乎很容易做到,但我没有得到我期待的结果.http://gabrielharper.com/blog/2012/09/wordpress-custom-urls-for-plugins/
而不是http://www.domain.co.uk/?flickrps=2我希望网址是类似的东西http://www.domain.co.uk/page/2.
我想遗憾地使用上面的链接不起作用并给出错误404,但是带有问号的链接却起作用,但我宁愿不使用这些.
我知道这是由WordPress采取的,但就在这样的事情之后,也许照片会更好.
add_action('parse_request', 'addFlickrPhotostreamURL');
function addFlickrPhotostreamURL() {
global $flickrpsp;
// Manually parse the URL request
if (!empty($_SERVER['REQUEST_URI'])) {
$urlvars = explode('/', $_SERVER['REQUEST_URI']);
}
// Check for querystring variables
if ((!empty($urlvars[1])) && (!empty($urlvars[2]))) {
$_REQUEST['page'] = $urlvars[1];
$_REQUEST['flickrpsp'] = $urlvars[2];
$flickrpsp = $urlvars[2];
}
// ... handle multiple types of URL by checking $urlvars[1] here
}
Run Code Online (Sandbox Code Playgroud)
您可以在http://pastebin.com/cPhzrJBF查看整个文件的代码.
我的下一个问题是:我有一个通过AirDrop共享自定义URL方案的应用程序:
NSMutableString *mutableString = [NSMutableString stringWithString:@"appName://"];
[mutableString appendString:contentProduct.url];
NSURL *airDropUrl = [[NSURL alloc] initWithString:mutableString];
LAAirDropCustomUrl *customUrlSCHEMA = [[LAAirDropCustomUrl alloc] initWithUrl:airDropUrl];
NSArray *activityItems = [NSArray arrayWithObjects:customUrlSCHEMA, nil];
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems
applicationActivities:nil];
Run Code Online (Sandbox Code Playgroud)
我已在项目目标的“信息”部分中添加了URL方案,并且通过AirDrop进行共享就可以了。另一方面,如果另一台设备没有该应用程序,则会显示默认警报,指出“设备x试图在您没有的应用程序上共享某东西,想从appstore获取吗?”。我想,如果其他设备没有该应用程序,则发送浏览器可以打开的其他URL。
如果我尝试在activityItems之间添加默认的NSURL *,则会收到一条错误消息,提示“设备x无法接收此类项目”
NSURL *airDropUrl = [[NSURL alloc] initWithString:mutableString];
NSArray *activityItems = [NSArray arrayWithObjects:airDropUrl,customUrlSCHEMA , nil];
Run Code Online (Sandbox Code Playgroud)
LAAirDropCustomUrl实现为:
- (id)initWithUrl:(NSURL *)url {
if (self = [super init]) {
_url = url;
}
return self;
}
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
return self.url;
}
- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType { …Run Code Online (Sandbox Code Playgroud) 我在任何OSX浏览器中创建了一个从自定义URL启动的应用程序.通过向应用程序的plist添加标准CFBundleURLName条目,这可以正常工作.
我的应用程序通过解析自定义URL上的一些参数然后对它们做出反应来阅读.
例如,使用自定义网址:
foobar://param1/param2/param3
在浏览器中单击上面的URL时,OSX会启动我的应用程序并将实际的自定义URL本身作为应用程序的第一个参数传递.因此,在应用程序中,我可以读取第一个arg并获取打开应用程序的URL,并解析它我需要的参数.
这在OSX 10.5-10.8中运行良好,但在10.9 Mavericks中它的工作方式略有不同.即,如果应用程序尚未运行,它仍会启动应用程序,但不会将自定义URL作为第一个参数传递 - 因此应用程序认为它刚刚由用户手动启动(例如从启动板选择)而不是直接从一个浏览器.
奇怪的是,如果应用程序已经打开,那么单击自定义URL会将url字符串发送到应用程序作为第一个参数,应用程序中的功能按预期发生.
我已经使用我的应用程序的新旧版本在10.6-> 10.9上测试了这一点,并且都表现出相同的行为.在10.9 Mavericks之前的版本首次发布时都可以正常工作,但是在10.9中,他们没有将url作为第一个arg传递,但是在第二次单击已经运行时工作.
如果有人能对此有所了解,我将非常感激.
您可能认为这是一个重复的问题,但事实并非如此,我完全了解 SO 关于canOpenURLiOS 9 及其警告的所有答案,但这是我的问题:
我正在尝试检查我的设备上是否安装了特定的应用程序(均由我开发)。我已宣布该计划AppA为:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.my.company.id</string>
<key>CFBundleURLSchemes</key>
<array>
<string>XYZ</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
在另一个应用程序上,AppB我在 info.plist 中添加了:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>XYZ</string>
</array>
Run Code Online (Sandbox Code Playgroud)
现在,AppB我试图找出我是否AppA安装了这样的:
internal static let appAScheme = "XYZ://"
static func AppAInstalled() -> Bool {
let appAURL = NSURL(string: appAScheme)
return UIApplication.sharedApplication().canOpenURL(appAURL!)
}
Run Code Online (Sandbox Code Playgroud)
它总是返回
-canOpenURL:URL 失败:“XYZ://” - 错误:“此应用程序不允许查询方案 XYZ”
但是,如果我尝试AppA从AppB它打开它,它将毫无问题地工作!
// Works alright
UIApplication.sharedApplication().openURL(appAURL!)
Run Code Online (Sandbox Code Playgroud)
我想不通为什么!
我如何在Asp.Net MVC 4中使用此URL(http://www.domain.com/friendly-content-title).
注意:此参数始终是动态的.网址可能有所不同:"friendly-content-title"
我尝试自定义属性,但我没有在ActionResult中捕获这个(友好内容标题)参数.
浏览次数:
的ActionResult:
// GET: /Home/
public ActionResult Index()
{
return View(Latest);
}
// GET: /Home/Video
public ActionResult Video(string permalink)
{
var title = permalink;
return View();
}
Run Code Online (Sandbox Code Playgroud)
RouteConfig:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Home Page",
url: "{controller}/{action}",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Video Page",
url: "{Home}/{permalink}",
defaults: new { controller = "Home", action = "Video", permalink = "" …Run Code Online (Sandbox Code Playgroud) 我有一个名为的网页page.jsp,我只希望它有2个网址:
在我写的web.xml中:
<servlet>
<servlet-name>Page</servlet-name>
<jsp-file>page.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>Page</servlet-name>
<url-pattern>/page-url-1</url-pattern>
<url-pattern>/page-url-2</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
但现在,它有3个网址:
问题:如何删除JSP的本机URL,并为其分配自定义URL?
custom-url ×10
ios ×3
iphone ×3
url ×2
url-scheme ×2
airdrop ×1
asp.net-mvc ×1
c# ×1
cocoa-touch ×1
ios9 ×1
itunes-store ×1
java ×1
jsp ×1
macos ×1
permalinks ×1
share ×1
stocks ×1
swift ×1
url-routing ×1
web.xml ×1
wordpress ×1
xcode7.2 ×1