Moh*_*dey 9 javascript mobile angularjs
我正在开发一个angularJS网络应用程序,我需要从移动设备扫描一个包,我正在使用bridgeit.
在角度我写了以下代码来执行功能,但它似乎不起作用.
HTML代码:
<input id="inp" />
<button id="scan" ng-click="scan()"> Scan </button>
Run Code Online (Sandbox Code Playgroud)
JS代码:
// inside angular controller
$scope.scan = funcction() {
bridgeit.scan('scan', 'window.scan');
}
// in global scope
window.scan = function(event) {
alert(event.data);
}
Run Code Online (Sandbox Code Playgroud)
结果:bridgeit将能够扫描qr /条形码,但不会返回值.
经过多次尝试,我发现问题出hashtags
在 URL 上。
让我们举一个使用相同代码的例子,
// inside angular controller
$scope.scan = funcction() {
bridgeit.scan('scan', 'bridgeitCallback');
}
// in global scope
window.bridgeitCallback = function(event) {
alert(event.data);
}
Run Code Online (Sandbox Code Playgroud)
我有一个网址,例如,http://stackoverflow.com/#question
我在该页面内有一个扫描字段。因此,当我扫描条形码时,它会将 URL 更改为,例如,
http://stackoverflow.com/#c=scan%3Fid%3Dscan%26&r=http%3A//stackoverflow.com%23icemobilesx&o=enc%3Dbase64&h=%26h%3D%2523/question%26c%3DbridgeitCallback%26seq%3D1432552876578
更清楚,
http://stackoverflow.com/#c=scan{{some_uri_encode_characters}}/{{your_route,mine_is question}}/{{bridgeit_callback_method}}
Run Code Online (Sandbox Code Playgroud)
因此,它永远无法成功POST
回调。
我刚刚在 Angular 中启用了 html5Mode,
$locationProvider.html5Mode(true);
Run Code Online (Sandbox Code Playgroud)
一切都像魅力一样。
希望它也能帮助未来的用户。
归档时间: |
|
查看次数: |
452 次 |
最近记录: |