[ALOY-1697] Add WebView "onlink" callback support
| GitHub Issue | n/a | 
|---|---|
| Type | Improvement | 
| Priority | Medium | 
| Status | Closed | 
| Resolution | Fixed | 
| Resolution Date | 2019-08-16T18:32:17.000+0000 | 
| Affected Version/s | n/a | 
| Fix Version/s | CLI Release 7.1.1, Alloy 1.14.1 | 
| Components | XML | 
| Labels | WebView, callback, link | 
| Reporter | Gary Mathews | 
| Assignee | Ewan Harris | 
| Created | 2019-07-11T23:54:48.000+0000 | 
| Updated | 2019-08-20T21:41:20.000+0000 | 
Description
	*Summary:*
We should add 
Ti.UI.WebView "onlink" callback support in view XML to make it more convenient to use. Currently, Alloy users are limited to assigning the callback in their JavaScript code instead.
https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.WebView-property-onlink
*Example:*
index.xml
<Alloy>
	<Window class="container">
		<WebView id="webView" onlink="onLinkHandler"/>
	</Window>
</Alloy>
var htmlText =
		'<!DOCTYPE html>\n' +
		'<html>\n' +
		'	<head>\n' +
		'		<meta name="viewport" content="width=device-width, initial-scale=1.0">\n' +
		'	</head>\n' +
		'	<body>\n' +
		'		<p>WebView "onlink" Test</p>\n' +
		'		<br/>\n' +
		'		<br/>\n' +
		'		<a href="mylink://show/alert">Show Alert</a>\n' +
		'	</body>\n' +
		'</html>\n';
function onLinkHandler(e) {
	if (e.url === "mylink://show/alert") {
		alert("The 'onLinkHandler' callback was invoked.");
		return false;
	}
	return true;
};
$.webView.html = htmlText;
$.index.open();
$.webView.onlink = 'onLinkHandler';
PR: https://github.com/appcelerator/alloy/pull/936
Verified the fix on CLI 7.1.1-master.5.web view onlink callback support added. Works as expected. Test Environment: Name = Mac OS X Version = 10.14.5 Architecture = 64bit Node.js Node.js Version = 10.16.2 npm Version = 6.9.0 Titanium CLI CLI Version = 5.2.1 Titanium SDK SDK Version = 8.1.1.v20190813101121 CLI = 7.1.1-MASTER.5 Studio -5.1.3.201907112159 appc npm -4.2.15-1 device -iPhone X iOS 11,oneplus 5t Android 9 Simulator/Emulator -iphone6 ios12,pixel android 8