That summer, Shannon was traded to the Vancouver Canucks on June 23, 2007, in exchange for Jason King and a conditional pick in 2009. He made the Canucks' roster out of training camp, but was sent down to the Manitoba Moose of the AHL after several games. Shannon was later called up and played 27 games total for the Canucks in 2007–08, recording 13 points. On July 23, 2008, it was announced that Shannon had re-signed with the Canucks.