Last active
April 8, 2019 17:55
-
-
Save coordinates/df3d5138a6f4c0e69d2a to your computer and use it in GitHub Desktop.
Detect OGP tags
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW12 | |
var MyExtensionJavaScriptClass = function() {}; | |
MyExtensionJavaScriptClass.prototype = { | |
run: function(arguments) { | |
// selection string | |
var selectionString = window.getSelection().toString(); | |
// open graph | |
var ogMetas = {}; | |
var metatags = document.getElementsByTagName("meta"); | |
if(0 < metatags.length) { | |
for (i = 0; i < metatags.length; i++) { | |
var property = metatags[i].getAttribute("property"); | |
var content = metatags[i].getAttribute("content"); | |
if( "og:title" == property) { | |
ogMetas.title = content; | |
} | |
else if( "og:description" == property) { | |
ogMetas.description = content; | |
} | |
else if( "og:site_name" == property) { | |
ogMetas.site_name = content; | |
} | |
else if( "og:url" == property) { | |
ogMetas.url = content; | |
} | |
else if( "og:type" == property) { | |
ogMetas.type = content; | |
} | |
else if ( "og:image" == property || | |
"og:image:url" == property || | |
"og:image:secure_url" == property ){ | |
var image = {"url": content}; | |
for (var j=i+1; j<metatags.length; j++) { | |
var imageProperty = metatags[j].getAttribute("property"); | |
var imageContent = metatags[j].getAttribute("content"); | |
if("og:image:width" == property) { | |
image.width = imageContent; | |
i = j; | |
} | |
else if("og:image:height" == property) { | |
image.height = imageContent; | |
i = j; | |
} | |
if(3 <= image.length) { | |
break; | |
} | |
} | |
if(undefined === ogMetas.image) { | |
ogMetas.image = [image]; | |
} | |
else { | |
ogMetas.image[ogMetas.image.length] = image; | |
} | |
} | |
} | |
} | |
arguments.completionFunction({ | |
"baseURI": document.baseURI, | |
"selectionString": selectionString, | |
"ogMetas": ogMetas, | |
}); | |
}, | |
// Note that the finalize function is only available in iOS. | |
finalize: function(arguments) { | |
// arguments contains the value the extension provides in [NSExtensionContext completeRequestReturningItems:completion:]. | |
// In this example, the extension provides a color as a returning item. | |
// document.body.style.backgroundColor = arguments["bgColor"]; | |
} | |
}; | |
// The JavaScript file must contain a global object named "ExtensionPreprocessingJS". | |
var ExtensionPreprocessingJS = new MyExtensionJavaScriptClass(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment